[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    Re: fbsplash breakage by 25333
From:       Bernhard Reutner-Fischer <rep.dot.nop () gmail ! com>
Date:       2009-02-16 14:08:18
Message-ID: 20090216140818.GA26045 () mx ! loc
[Download RAW message or body]

On Mon, Feb 16, 2009 at 01:50:21PM +0100, Denys Vlasenko wrote:
>On Mon, Feb 16, 2009 at 1:39 PM, Bernhard Reutner-Fischer

>>>I have an example splash.ppm file hre, and its header looks like this:
>>>
>>>P6
>>># CREATOR: The GIMP's PNM Filter Version 1.0
>>>640 480
>>>255
>>>[binary data starts here]
>>>
>>>The above change broke it.
>>
>> Fair enough, i wasn't aware that there can be comments.
>> Apparently even this would be a legal header:
>> ---8<---
>> P6
>> 640 #something
>> 480 #another comment
>> # comment
>> 255
>> ---8<---
>>
>> r25342 should deal with this fine (untested).
>
>Oh no, please don't, I'm working on it right now;

ouch, sorry too late, i've already checked it in :-/

>also trying to add that text rendering.

btw, fbset seems to be completely broken, i can't set -depth ?
Attached hunk would cure it for me, i'll let you deal with it
since you apparently touched fbset alot in the past, ok?


["fbset-does-not-set-depth.patch" (text/x-diff)]

$ size util-linux/fbset.o*
   text	   data	    bss	    dec	    hex	filename
   2531	      0	      0	   2531	    9e3	util-linux/fbset.o.oorig
   2598	      0	      0	   2598	    a26	util-linux/fbset.o


Index: util-linux/fbset.c
===================================================================
--- util-linux/fbset.c	(revision 25341)
+++ util-linux/fbset.c	(working copy)
@@ -30,7 +30,8 @@ enum {
 /*	CMD_XCOMPAT =     10, */
 	CMD_ALL = 11,
 	CMD_INFO = 12,
-	CMD_CHANGE = 13,
+	CMD_SHOW = 13,
+	CMD_CHANGE = 14,
 
 #if ENABLE_FEATURE_FBSET_FANCY
 	CMD_XRES = 100,
@@ -123,7 +124,8 @@ static const struct cmdoptions_t {
 	{ "vsync"   , 1, CMD_VSYNC    },
 	{ "laced"   , 1, CMD_LACED    },
 	{ "double"  , 1, CMD_DOUBLE   },
-	{ "n"       , 0, CMD_CHANGE   },
+	{ "show"    , 0, CMD_SHOW     },
+	{ "s"       , 0, CMD_SHOW     },
 #if ENABLE_FEATURE_FBSET_FANCY
 	{ "all"     , 0, CMD_ALL      },
 	{ "xres"    , 1, CMD_XRES     },
@@ -172,7 +174,7 @@ static void ss(uint32_t *x, uint32_t fla
 		*x |= flag;
 }
 
-static int readmode(struct fb_var_screeninfo *base, const char *fn,
+static int read_mode_db(struct fb_var_screeninfo *base, const char *fn,
 					const char *mode)
 {
 	char *token[2], *p, *s;
@@ -302,7 +304,7 @@ int fbset_main(int argc, char **argv)
 {
 	enum {
 		OPT_CHANGE   = (1 << 0),
-		/*OPT_INFO     = (1 << 1), ??*/
+		OPT_SHOW     = (1 << 1),
 		OPT_READMODE = (1 << 2),
 		OPT_ALL      = (1 << 9),
 	};
@@ -333,6 +335,12 @@ int fbset_main(int argc, char **argv)
 			case CMD_DB:
 				modefile = argv[1];
 				break;
+			case CMD_ALL:
+				options |= OPT_ALL;
+				break;
+			case CMD_SHOW:
+				options |= OPT_SHOW;
+				break;
 			case CMD_GEOMETRY:
 				varset.xres = xatou32(argv[1]);
 				varset.yres = xatou32(argv[2]);
@@ -349,12 +357,6 @@ int fbset_main(int argc, char **argv)
 				varset.hsync_len = xatou32(argv[6]);
 				varset.vsync_len = xatou32(argv[7]);
 				break;
-			case CMD_ALL:
-				options |= OPT_ALL;
-				break;
-			case CMD_CHANGE:
-				options |= OPT_CHANGE;
-				break;
 #if ENABLE_FEATURE_FBSET_FANCY
 			case CMD_XRES:
 				varset.xres = xatou32(argv[1]);
@@ -367,6 +369,15 @@ int fbset_main(int argc, char **argv)
 				break;
 #endif
 			}
+			switch (g_cmdoptions[i].code) {
+			case CMD_FB:
+			case CMD_DB:
+			case CMD_ALL:
+			case CMD_SHOW:
+				break;
+			default:
+				options |= OPT_CHANGE; /* the other commands imply changes */
+			}
 			argc -= g_cmdoptions[i].param_count;
 			argv += g_cmdoptions[i].param_count;
 			goto contin;
@@ -384,19 +395,20 @@ int fbset_main(int argc, char **argv)
 #if !ENABLE_FEATURE_FBSET_READMODE
 		bb_show_usage();
 #else
-		if (!readmode(&var, modefile, mode)) {
+		if (!read_mode_db(&var, modefile, mode)) {
 			bb_error_msg_and_die("unknown video mode '%s'", mode);
 		}
 #endif
 	}
 
-	setmode(&var, &varset);
 	if (options & OPT_CHANGE) {
+		setmode(&var, &varset);
 		if (options & OPT_ALL)
 			var.activate = FB_ACTIVATE_ALL;
 		xioctl(fh, FBIOPUT_VSCREENINFO, &var);
 	}
-	showmode(&var);
+	if (options == 0 || options & OPT_SHOW)
+		showmode(&var);
 	/* Don't close the file, as exiting will take care of that */
 	/* close(fh); */
 


_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic