ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/xdefaults.C
(Generate patch)

Comparing rxvt-unicode/src/xdefaults.C (file contents):
Revision 1.89 by root, Sun Jan 29 22:27:04 2006 UTC vs.
Revision 1.90 by root, Tue Jan 31 19:53:31 2006 UTC

21 * You should have received a copy of the GNU General Public License 21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software 22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 *----------------------------------------------------------------------*/ 24 *----------------------------------------------------------------------*/
25 25
26#include "../config.h" /* NECESSARY */ 26#include "../config.h"
27#include "rxvt.h" /* NECESSARY */ 27#include "rxvt.h"
28#include "version.h" 28#include "version.h"
29 29
30#ifdef KEYSYM_RESOURCE 30#ifdef KEYSYM_RESOURCE
31#include "keyboard.h" 31#include "keyboard.h"
32#endif 32#endif
386#endif 386#endif
387 "\nUsage: "; /* Usage */ 387 "\nUsage: "; /* Usage */
388 388
389#define INDENT 18 389#define INDENT 18
390 390
391const char rxvt_term::resval_undef [] = "<undef>";
392const char rxvt_term::resval_on [] = "on";
393const char rxvt_term::resval_off [] = "off";
394
391/*{{{ usage: */ 395/*{{{ usage: */
392/*----------------------------------------------------------------------*/ 396/*----------------------------------------------------------------------*/
393static void 397static void
394rxvt_usage (int type) 398rxvt_usage (int type)
395{ 399{
481/*{{{ get command-line options before getting resources */ 485/*{{{ get command-line options before getting resources */
482void 486void
483rxvt_term::get_options (int argc, const char *const *argv) 487rxvt_term::get_options (int argc, const char *const *argv)
484{ 488{
485 int i, bad_option = 0; 489 int i, bad_option = 0;
486 static const char On[3] = "ON", Off[4] = "OFF";
487 490
488 for (i = 1; i < argc; i++) 491 for (i = 1; i < argc; i++)
489 { 492 {
490 unsigned int entry, longopt = 0; 493 unsigned int entry, longopt = 0;
491 const char *flag, *opt; 494 const char *flag, *opt;
492 495
493 opt = argv[i]; 496 opt = argv[i];
494 497
495 if (*opt == '-') 498 if (*opt == '-')
496 { 499 {
497 flag = On; 500 flag = resval_on;
501
498 if (*++opt == '-') 502 if (*++opt == '-')
499 longopt = *opt++; /* long option */ 503 longopt = *opt++; /* long option */
500 } 504 }
501 else if (*opt == '+') 505 else if (*opt == '+')
502 { 506 {
503 flag = Off; 507 flag = resval_off;
508
504 if (*++opt == '+') 509 if (*++opt == '+')
505 longopt = *opt++; /* long option */ 510 longopt = *opt++; /* long option */
506 } 511 }
507 else 512 else
508 { 513 {
511 continue; 516 continue;
512 } 517 }
513 518
514 if (!strcmp (opt, "help")) 519 if (!strcmp (opt, "help"))
515 rxvt_usage (longopt ? 2 : 1); 520 rxvt_usage (longopt ? 2 : 1);
521
516 if (!strcmp (opt, "h")) 522 if (!strcmp (opt, "h"))
517 rxvt_usage (0); 523 rxvt_usage (0);
518 524
519 /* feature: always try to match long-options */ 525 /* feature: always try to match long-options */
520 for (entry = 0; entry < optList_size; entry++) 526 for (entry = 0; entry < optList_size; entry++)
524 break; 530 break;
525 531
526 if (entry < optList_size) 532 if (entry < optList_size)
527 { 533 {
528 if (optList_isReverse (entry)) 534 if (optList_isReverse (entry))
529 flag = flag == On ? Off : On; 535 flag = flag == resval_on ? resval_off : resval_on;
530 536
531 if (optList_strlen (entry)) 537 if (optList_strlen (entry))
532 { 538 {
533 /* 539 /*
534 * special cases are handled in main.c:main () to allow 540 * special cases are handled in main.c:main () to allow
535 * X resources to set these values before we settle for 541 * X resources to set these values before we settle for
536 * default values 542 * default values
537 */ 543 */
538 544
539 if (optList[entry].doff != -1) 545 if (optList[entry].doff != -1)
540 rs[optList[entry].doff] = flag == On && argv[i+1] 546 rs[optList[entry].doff] = flag == resval_on && argv[i+1]
541 ? argv[++i] : 0; 547 ? argv[++i] : resval_undef;
548
549 if (optList[entry].doff == Rs_color + Color_tint) printf ("doff %d is %s\n",optList[entry].doff,rs[optList[entry].doff]);//D
542 } 550 }
543 else 551 else
544 { /* boolean value */ 552 { /* boolean value */
545 set_option (optList[entry].flag & Optflag_mask, flag == On); 553 set_option (optList[entry].flag & Optflag_mask, flag == resval_on);
546 554
547 if (optList[entry].doff != -1) 555 if (optList[entry].doff != -1)
548 rs[optList[entry].doff] = flag; 556 rs[optList[entry].doff] = flag;
549 } 557 }
550 } 558 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines