start adding multibyte/wide character support to the help browser code
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2327 35c25a1d-7b9e-4130-9fde-d3aeb78583b8master
parent
0c23aed600
commit
b6e79fddaf
|
@ -140,7 +140,7 @@ CVS code -
|
||||||
supposed to return void anyway. Also, the value of RETSIGTYPE
|
supposed to return void anyway. Also, the value of RETSIGTYPE
|
||||||
is sometimes misdetected as int, leading to compilation
|
is sometimes misdetected as int, leading to compilation
|
||||||
warnings or errors. Changes to cancel_fork(),
|
warnings or errors. Changes to cancel_fork(),
|
||||||
handle_hipterm(), do_suspend(), and do_cont(). (David
|
handle_hupterm(), do_suspend(), and do_cont(). (David
|
||||||
Benbennick)
|
Benbennick)
|
||||||
- Change flags to an unsigned long, and totsize to a size_t.
|
- Change flags to an unsigned long, and totsize to a size_t.
|
||||||
(DLR)
|
(DLR)
|
||||||
|
@ -161,6 +161,8 @@ CVS code -
|
||||||
routine to get the current user's home directory into the new
|
routine to get the current user's home directory into the new
|
||||||
function get_homedir(), and use it where necessary. Also add
|
function get_homedir(), and use it where necessary. Also add
|
||||||
a few miscellaneous tweaks.
|
a few miscellaneous tweaks.
|
||||||
|
- Still more steps toward multibyte/wide character support.
|
||||||
|
Changes to help_init(). (DLR)
|
||||||
- cut.c:
|
- cut.c:
|
||||||
do_cut_text()
|
do_cut_text()
|
||||||
- If keep_cutbuffer is FALSE, only blow away the text in the
|
- If keep_cutbuffer is FALSE, only blow away the text in the
|
||||||
|
|
59
src/nano.c
59
src/nano.c
|
@ -270,6 +270,11 @@ void help_init(void)
|
||||||
const shortcut *s;
|
const shortcut *s;
|
||||||
#ifndef NANO_SMALL
|
#ifndef NANO_SMALL
|
||||||
const toggle *t;
|
const toggle *t;
|
||||||
|
#ifdef ENABLE_NANORC
|
||||||
|
bool old_whitespace = ISSET(WHITESPACE_DISPLAY);
|
||||||
|
|
||||||
|
UNSET(WHITESPACE_DISPLAY);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* First, set up the initial help text for the current function. */
|
/* First, set up the initial help text for the current function. */
|
||||||
|
@ -394,10 +399,10 @@ void help_init(void)
|
||||||
* Each line has "M-%c\t\t\t", which fills 24 columns, plus a space,
|
* Each line has "M-%c\t\t\t", which fills 24 columns, plus a space,
|
||||||
* plus translated text, plus '\n'. */
|
* plus translated text, plus '\n'. */
|
||||||
if (currshortcut == main_list) {
|
if (currshortcut == main_list) {
|
||||||
size_t endislen = strlen(_("enable/disable"));
|
size_t endis_len = strlen(_("enable/disable"));
|
||||||
|
|
||||||
for (t = toggles; t != NULL; t = t->next)
|
for (t = toggles; t != NULL; t = t->next)
|
||||||
allocsize += 8 + strlen(t->desc) + endislen;
|
allocsize += 8 + strlen(t->desc) + endis_len;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -424,13 +429,22 @@ void help_init(void)
|
||||||
if (s->ctrlval != NANO_NO_KEY) {
|
if (s->ctrlval != NANO_NO_KEY) {
|
||||||
entries++;
|
entries++;
|
||||||
#ifndef NANO_SMALL
|
#ifndef NANO_SMALL
|
||||||
if (s->ctrlval == NANO_HISTORY_KEY)
|
if (s->ctrlval == NANO_HISTORY_KEY) {
|
||||||
ptr += sprintf(ptr, "%.7s", _("Up"));
|
char *up_ptr = display_string(_("Up"), 0, 7, FALSE);
|
||||||
else
|
|
||||||
|
ptr += sprintf(ptr, "%s", up_ptr);
|
||||||
|
|
||||||
|
free(up_ptr);
|
||||||
|
} else
|
||||||
#endif
|
#endif
|
||||||
if (s->ctrlval == NANO_CONTROL_SPACE)
|
if (s->ctrlval == NANO_CONTROL_SPACE) {
|
||||||
ptr += sprintf(ptr, "^%.6s", _("Space"));
|
char *space_ptr = display_string(_("Space"), 0, 6,
|
||||||
else if (s->ctrlval == NANO_CONTROL_8)
|
FALSE);
|
||||||
|
|
||||||
|
ptr += sprintf(ptr, "^%s", space_ptr);
|
||||||
|
|
||||||
|
free(space_ptr);
|
||||||
|
} else if (s->ctrlval == NANO_CONTROL_8)
|
||||||
ptr += sprintf(ptr, "^?");
|
ptr += sprintf(ptr, "^?");
|
||||||
else
|
else
|
||||||
ptr += sprintf(ptr, "^%c", s->ctrlval + 64);
|
ptr += sprintf(ptr, "^%c", s->ctrlval + 64);
|
||||||
|
@ -459,9 +473,14 @@ void help_init(void)
|
||||||
}
|
}
|
||||||
/* If the primary meta key sequence is the first entry,
|
/* If the primary meta key sequence is the first entry,
|
||||||
* don't put parentheses around it. */
|
* don't put parentheses around it. */
|
||||||
if (entries == 1 && s->metaval == NANO_ALT_SPACE)
|
if (entries == 1 && s->metaval == NANO_ALT_SPACE) {
|
||||||
ptr += sprintf(ptr, "M-%.5s", _("Space"));
|
char *space_ptr = display_string(_("Space"), 0, 5,
|
||||||
else
|
FALSE);
|
||||||
|
|
||||||
|
ptr += sprintf(ptr, "M-%s", space_ptr);
|
||||||
|
|
||||||
|
free(space_ptr);
|
||||||
|
} else
|
||||||
ptr += sprintf(ptr, entries == 1 ? "M-%c" : "(M-%c)",
|
ptr += sprintf(ptr, entries == 1 ? "M-%c" : "(M-%c)",
|
||||||
toupper(s->metaval));
|
toupper(s->metaval));
|
||||||
*(ptr++) = '\t';
|
*(ptr++) = '\t';
|
||||||
|
@ -486,7 +505,16 @@ void help_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(s->help != NULL);
|
assert(s->help != NULL);
|
||||||
ptr += sprintf(ptr, "%.*s\n", COLS > 24 ? COLS - 24 : 0, s->help);
|
|
||||||
|
if (COLS > 24) {
|
||||||
|
char *help_ptr = display_string(s->help, 0, COLS - 24,
|
||||||
|
FALSE);
|
||||||
|
|
||||||
|
ptr += sprintf(ptr, help_ptr);
|
||||||
|
|
||||||
|
free(help_ptr);
|
||||||
|
}
|
||||||
|
ptr += sprintf(ptr, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NANO_SMALL
|
#ifndef NANO_SMALL
|
||||||
|
@ -498,7 +526,12 @@ void help_init(void)
|
||||||
t->desc, _("enable/disable"));
|
t->desc, _("enable/disable"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* !NANO_SMALL */
|
|
||||||
|
#ifdef ENABLE_NANORC
|
||||||
|
if (old_whitespace)
|
||||||
|
SET(WHITESPACE_DISPLAY);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* If all went well, we didn't overwrite the allocated space for
|
/* If all went well, we didn't overwrite the allocated space for
|
||||||
* help_text. */
|
* help_text. */
|
||||||
|
|
Loading…
Reference in New Issue