--- rxvt-unicode/src/xdefaults.C 2011/04/13 14:00:18 1.151 +++ rxvt-unicode/src/xdefaults.C 2011/12/02 09:02:05 1.158 @@ -399,7 +399,7 @@ case 0: /* brief listing */ rxvt_log (" [-help] [--help]\n"); - for (col = 1, i = 0; i < ARRAY_LENGTH(optList); i++) + for (col = 1, i = 0; i < ecb_array_length (optList); i++) if (optList[i].desc != NULL) { int len = 0; @@ -427,7 +427,7 @@ case 1: /* full command-line listing */ rxvt_log (" [options] [-e command args]\n\nwhere options include:\n"); - for (i = 0; i < ARRAY_LENGTH(optList); i++) + for (i = 0; i < ecb_array_length (optList); i++) if (optList[i].desc != NULL) { assert (optList[i].opt != NULL); @@ -446,7 +446,7 @@ rxvt_log (" [options] [-e command args]\n\n" "where resources (long-options) include:\n"); - for (i = 0; i < ARRAY_LENGTH(optList); i++) + for (i = 0; i < ecb_array_length (optList); i++) if (optList[i].kw != NULL) rxvt_log (" %s: %*s%s\n", optList[i].kw, @@ -463,7 +463,6 @@ rxvt_log ("\n\n"); rxvt_exit_failure (); - /* NOTREACHED */ } /*}}} */ @@ -510,13 +509,13 @@ rxvt_usage (0); /* feature: always try to match long-options */ - for (entry = 0; entry < ARRAY_LENGTH(optList); entry++) + for (entry = 0; entry < ecb_array_length (optList); entry++) if ((optList[entry].kw && !strcmp (opt, optList[entry].kw)) || (!longopt && optList[entry].opt && !strcmp (opt, optList[entry].opt))) break; - if (entry < ARRAY_LENGTH(optList)) + if (entry < ecb_array_length (optList)) { if (optList_isReverse (entry)) flag = !flag; @@ -524,7 +523,7 @@ if (optList_isString (entry)) { /* - * special cases are handled in main.c:main () to allow + * special cases are handled in init_resources () to allow * X resources to set these values before we settle for * default values */ @@ -587,14 +586,13 @@ * "rxvt" "keysym" "0xFF01" * value will be a string */ -/* ARGSUSED */ -int -rxvt_define_key (XrmDatabase *database UNUSED, - XrmBindingList bindings UNUSED, +static int +rxvt_define_key (XrmDatabase *database ecb_unused, + XrmBindingList bindings ecb_unused, XrmQuarkList quarks, - XrmRepresentation *type UNUSED, + XrmRepresentation *type ecb_unused, XrmValue *value, - XPointer closure UNUSED) + XPointer closure ecb_unused) { int last; @@ -667,7 +665,7 @@ { unsigned int i; - for (i=0; i < ARRAY_LENGTH(keysym_vocabulary); ++i) + for (i = 0; i < ecb_array_length (keysym_vocabulary); ++i) { if (strncmp (str, keysym_vocabulary [i].name, keysym_vocabulary [i].len) == 0) { @@ -677,7 +675,7 @@ } } - if (i >= ARRAY_LENGTH(keysym_vocabulary)) + if (i >= ecb_array_length (keysym_vocabulary)) return -1; if (*str == '-') @@ -694,7 +692,9 @@ return -1; } - keyboard->register_user_translation (sym, state, arg); + wchar_t *ws = rxvt_mbstowcs (arg); + keyboard->register_user_translation (sym, state, ws); + free (ws); return 1; } @@ -747,7 +747,7 @@ /* * Query resources for options that affect us */ - for (int entry = 0; entry < ARRAY_LENGTH(optList); entry++) + for (int entry = 0; entry < ecb_array_length (optList); entry++) { int s; const char *kw = optList[entry].kw; @@ -795,10 +795,7 @@ XrmEnumerateDatabase (database, name_prefix, class_prefix, XrmEnumOneLevel, rxvt_define_key, NULL); # ifdef RESFALLBACK - name_prefix[0] = XrmStringToName (RESFALLBACK); - name_prefix[1] = XrmStringToName ("keysym"); - class_prefix[0] = XrmStringToName (RESFALLBACK); - class_prefix[1] = XrmStringToName ("Keysym"); + name_prefix[0] = class_prefix[0] = XrmStringToName (RESFALLBACK); /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ XrmEnumerateDatabase (database, name_prefix, class_prefix, XrmEnumOneLevel, rxvt_define_key, NULL);