--- rxvt-unicode/src/xdefaults.C 2008/01/07 12:31:49 1.129 +++ rxvt-unicode/src/xdefaults.C 2008/01/27 22:48:33 1.135 @@ -65,8 +65,8 @@ { (option), (Optflag_Switch | (flag)), -1, NULL, (opt), NULL, (desc)} /* convenient macros */ -#define optList_strlen(i) \ - (optList[i].flag ? 0 : (optList[i].arg ? strlen (optList[i].arg) : 1)) +#define optList_isString(i) \ + (optList[i].flag == 0) #define optList_isBool(i) \ (optList[i].flag & Optflag_Boolean) #define optList_isReverse(i) \ @@ -98,14 +98,12 @@ BOOL (Rs_jumpScroll, "jumpScroll", "j", Opt_jumpScroll, 0, "jump scrolling"), BOOL (Rs_skipScroll, "skipScroll", "ss", Opt_skipScroll, 0, "skip scrolling"), BOOL (Rs_pastableTabs, "pastableTabs", "ptab", Opt_pastableTabs, 0, "tab characters are pastable"), -#if HAVE_SCROLLBARS RSTRG (Rs_scrollstyle, "scrollstyle", "mode"), BOOL (Rs_scrollBar, "scrollBar", "sb", Opt_scrollBar, 0, "scrollbar"), BOOL (Rs_scrollBar_right, "scrollBar_right", "sr", Opt_scrollBar_right, 0, "scrollbar right"), BOOL (Rs_scrollBar_floating, "scrollBar_floating", "st", Opt_scrollBar_floating, 0, "scrollbar without a trough"), RSTRG (Rs_scrollBar_align, "scrollBar_align", "mode"), STRG (Rs_scrollBar_thickness, "thickness", "sbt", "number", "scrollbar thickness/width in pixels"), -#endif BOOL (Rs_scrollTtyOutput, "scrollTtyOutput", NULL, Opt_scrollTtyOutput, 0, NULL), BOOL (Rs_scrollTtyOutput, NULL, "si", Opt_scrollTtyOutput, Optflag_Reverse, "scroll-on-tty-output inhibit"), BOOL (Rs_scrollTtyKeypress, "scrollTtyKeypress", "sk", Opt_scrollTtyKeypress, 0, "scroll-on-keypress"), @@ -174,10 +172,10 @@ #if ENABLE_FRILLS RSTRG (Rs_color + Color_underline, "underlineColor", "color"), #endif -#ifdef KEEP_SCROLLCOLOR RSTRG (Rs_color + Color_scroll, "scrollColor", "color"), +#ifdef RXVT_SCROLLBAR RSTRG (Rs_color + Color_trough, "troughColor", "color"), -#endif /* KEEP_SCROLLCOLOR */ +#endif #ifdef OPTION_HC STRG (Rs_color + Color_HC, "highlightColor", "hc", "color", "highlight color"), #endif @@ -217,6 +215,7 @@ #endif #if XFT STRG (Rs_depth, "depth", "depth", "number", "depth of visual to request"), + BOOL (Rs_buffered, "buffered", NULL, Opt_buffered, 0, NULL), #endif #if ENABLE_FRILLS RSTRG (Rs_transient_for, "transient-for", "windowid"), @@ -362,31 +361,15 @@ #if defined(NO_RESOURCES) "NoResources," #endif - "scrollbars=" -#if !defined(HAVE_SCROLLBARS) - "NONE" -#else -# if defined(PLAIN_SCROLLBAR) - "plain" -# if defined(RXVT_SCROLLBAR) || defined(NEXT_SCROLLBAR) || defined(XTERM_SCROLLBAR) - "+" -# endif -# endif -# if defined(RXVT_SCROLLBAR) - "rxvt" -# if defined(NEXT_SCROLLBAR) || defined(XTERM_SCROLLBAR) - "+" -# endif -# endif -# if defined(NEXT_SCROLLBAR) - "NeXT" -# if defined(XTERM_SCROLLBAR) - "+" -# endif -# endif -# if defined(XTERM_SCROLLBAR) - "xterm" -# endif + "scrollbars=plain" +#if defined(RXVT_SCROLLBAR) + "+rxvt" +#endif +#if defined(NEXT_SCROLLBAR) + "+NeXT" +#endif +#if defined(XTERM_SCROLLBAR) + "+xterm" #endif "\nUsage: "; /* Usage */ @@ -415,12 +398,8 @@ { int len = 0; - if (!optList_isBool (i)) - { - len = optList_strlen (i); - if (len > 0) - len++; /* account for space */ - } + if (optList[i].arg) + len = strlen (optList[i].arg) + 1; #ifdef DEBUG_STRICT assert (optList[i].opt != NULL); #endif @@ -434,7 +413,7 @@ } rxvt_log (" [-%s%s", (optList_isBool (i) ? "/+" : ""), optList[i].opt); - if (optList_strlen (i)) + if (optList[i].arg) rxvt_log (" %s]", optList[i].arg); else rxvt_log ("]"); @@ -496,20 +475,21 @@ for (i = 1; i < argc; i++) { unsigned int entry, longopt = 0; - const char *flag, *opt; + const char *opt; + int flag; opt = argv[i]; if (*opt == '-') { - flag = resval_on; + flag = 1; if (*++opt == '-') longopt = *opt++; /* long option */ } else if (*opt == '+') { - flag = resval_off; + flag = 0; if (*++opt == '+') longopt = *opt++; /* long option */ @@ -537,9 +517,9 @@ if (entry < optList_size) { if (optList_isReverse (entry)) - flag = flag == resval_on ? resval_off : resval_on; + flag = !flag; - if (optList_strlen (entry)) + if (optList_isString (entry)) { /* * special cases are handled in main.c:main () to allow @@ -549,19 +529,19 @@ if (optList[entry].doff != -1) { - if (flag == resval_on && i+1 == argc) + if (flag && i+1 == argc) rxvt_fatal ("option '%s' requires an argument, aborting.\n", argv [i]); - rs[optList[entry].doff] = flag == resval_on ? argv[++i] : resval_undef; + rs[optList[entry].doff] = flag ? argv[++i] : resval_undef; } } else { /* boolean value */ - set_option (optList[entry].index, flag == resval_on); + set_option (optList[entry].index, flag); if (optList[entry].doff != -1) - rs[optList[entry].doff] = flag; + rs[optList[entry].doff] = flag ? resval_on : resval_off; } } #ifndef NO_RESOURCES @@ -636,7 +616,7 @@ unsigned short len; unsigned short value; }; -keysym_vocabulary_t keysym_vocabulary[] = +static const keysym_vocabulary_t keysym_vocabulary[] = { { "ISOLevel3", 9, Level3Mask }, { "AppKeypad", 9, AppKeypadMask },