]> git.wh0rd.org Git - nano.git/commitdiff
in help_init(), avoid a warning when compiling with -pedantic by
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 30 Mar 2005 18:11:59 +0000 (18:11 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 30 Mar 2005 18:11:59 +0000 (18:11 +0000)
breaking overly long help text up into separate chunks, and add a few
wording fixes to the help text as well

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2442 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/nano.c

index 6a7a67950a970cc10bb26e4e5066e3dbc30e83df..0e9d765bd1d062a2968c136f37292f234f81e0e9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -31,6 +31,10 @@ CVS code -
   help_init()
        - When calculating allocsize, take multibyte characters into
          account, and keep the column number limits consistent. (DLR)
+       - Break htx up into three chunks, in case the string is too long
+         for the compiler to handle (e.g. an ISO C89 compiler that can
+         only handle up to 509 characters). (DLR)
+       - Minor wording fixes. (DLR)
   print1opt()
        - Don't include longflag if HAVE_GETOPT_LONG isn't defined.
          Rename this function to print1opt_full(), leave out the
index dce8e9ef481e1cf6706453705e2f7feb9c8e94de..64b52fb436a6200e18cfdf60f9d854c2a6254d8e 100644 (file)
@@ -265,7 +265,10 @@ void mouse_init(void)
 void help_init(void)
 {
     size_t allocsize = 0;      /* Space needed for help_text. */
-    const char *htx;           /* Untranslated help message. */
+    const char *htx[3];                /* Untranslated help message.  We break
+                                * it up into three chunks in case the
+                                * full string is too long for the
+                                * compiler to handle. */
     char *ptr;
     const shortcut *s;
 #ifndef NANO_SMALL
@@ -279,115 +282,151 @@ void help_init(void)
 
     /* First, set up the initial help text for the current function. */
     if (currshortcut == whereis_list || currshortcut == replace_list
-            || currshortcut == replace_list_2)
-       htx = N_("Search Command Help Text\n\n "
-               "Enter the words or characters you would like to search "
-               "for, then hit Enter.  If there is a match for the text you "
-               "entered, the screen will be updated to the location of the "
-               "nearest match for the search string.\n\n The previous "
-               "search string will be shown in brackets after the search "
-               "prompt.  Hitting Enter without entering any text will "
-               "perform the previous search.  If you have selected text "
-               "with the mark and then search to replace, only matches in "
-               "the selected text will be replaced.\n\n The following "
-               "function keys are available in Search mode:\n\n");
-    else if (currshortcut == gotoline_list)
-       htx = N_("Go To Line Help Text\n\n "
+            || currshortcut == replace_list_2) {
+       htx[0] = N_("Search Command Help Text\n\n "
+               "Enter the words or characters you would like to "
+               "search for, and then press Enter.  If there is a "
+               "match for the text you entered, the screen will be "
+               "updated to the location of the nearest match for the "
+               "search string.\n\n The previous search string will be "
+               "shown in brackets after the search prompt.  Hitting "
+               "Enter without entering any text will perform the "
+               "previous search.  ");
+       htx[1] = N_("If you have selected text with the mark and then "
+               "search to replace, only matches in the selected text "
+               "will be replaced.\n\n The following function keys are "
+               "available in Search mode:\n\n");
+       htx[2] = NULL;
+    } else if (currshortcut == gotoline_list) {
+       htx[0] = N_("Go To Line Help Text\n\n "
                "Enter the line number that you wish to go to and hit "
                "Enter.  If there are fewer lines of text than the "
-               "number you entered, you will be brought to the last line "
-               "of the file.\n\n The following function keys are "
+               "number you entered, you will be brought to the last "
+               "line of the file.\n\n The following function keys are "
                "available in Go To Line mode:\n\n");
-    else if (currshortcut == insertfile_list)
-       htx = N_("Insert File Help Text\n\n "
-               "Type in the name of a file to be inserted into the current "
-               "file buffer at the current cursor location.\n\n "
-               "If you have compiled nano with multiple file buffer "
-               "support, and enable multiple buffers with the -F "
-               "or --multibuffer command line flags, the Meta-F toggle, or "
-               "a nanorc file, inserting a file will cause it to be "
-               "loaded into a separate buffer (use Meta-< and > to switch "
-               "between file buffers). If you need another blank buffer, "
-               "do not enter any filename, or type in a nonexistent "
-               "filename at the prompt and press Enter.\n\n The following "
+       htx[1] = NULL;
+       htx[2] = NULL;
+    } else if (currshortcut == insertfile_list) {
+       htx[0] = N_("Insert File Help Text\n\n "
+               "Type in the name of a file to be inserted into the "
+               "current file buffer at the current cursor "
+               "location.\n\n If you have compiled nano with multiple "
+               "file buffer support, and enable multiple file buffers "
+               "with the -F or --multibuffer command line flags, the "
+               "Meta-F toggle, or a nanorc file, inserting a file "
+               "will cause it to be loaded into a separate buffer "
+               "(use Meta-< and > to switch between file buffers).  ");
+       htx[1] = N_("If you need another blank buffer, do not enter "
+               "any filename, or type in a nonexistent filename at "
+               "the prompt and press Enter.\n\n The following "
                "function keys are available in Insert File mode:\n\n");
-    else if (currshortcut == writefile_list)
-       htx = N_("Write File Help Text\n\n "
+       htx[2] = NULL;
+    } else if (currshortcut == writefile_list) {
+       htx[0] = N_("Write File Help Text\n\n "
                "Type the name that you wish to save the current file "
-               "as and hit Enter to save the file.\n\n If you have "
+               "as and press Enter to save the file.\n\n If you have "
                "selected text with the mark, you will be prompted to "
                "save only the selected portion to a separate file.  To "
                "reduce the chance of overwriting the current file with "
                "just a portion of it, the current filename is not the "
                "default in this mode.\n\n The following function keys "
                "are available in Write File mode:\n\n");
+       htx[1] = NULL;
+       htx[2] = NULL;
+    }
 #ifndef DISABLE_BROWSER
-    else if (currshortcut == browser_list)
-       htx = N_("File Browser Help Text\n\n "
+    else if (currshortcut == browser_list) {
+       htx[0] = N_("File Browser Help Text\n\n "
                "The file browser is used to visually browse the "
                "directory structure to select a file for reading "
                "or writing.  You may use the arrow keys or Page Up/"
                "Down to browse through the files, and S or Enter to "
                "choose the selected file or enter the selected "
-               "directory.  To move up one level, select the directory "
-               "called \"..\" at the top of the file list.\n\n The "
-               "following function keys are available in the file "
-               "browser:\n\n");
-    else if (currshortcut == gotodir_list)
-       htx = N_("Browser Go To Directory Help Text\n\n "
+               "directory.  To move up one level, select the "
+               "directory called \"..\" at the top of the file "
+               "list.\n\n The following function keys are available "
+               "in the file browser:\n\n");
+       htx[1] = NULL;
+       htx[2] = NULL;
+    } else if (currshortcut == gotodir_list) {
+       htx[0] = N_("Browser Go To Directory Help Text\n\n "
                "Enter the name of the directory you would like to "
-               "browse to.\n\n If tab completion has not been disabled, "
-               "you can use the Tab key to (attempt to) automatically "
-               "complete the directory name.\n\n The following function "
-               "keys are available in Browser Go To Directory mode:\n\n");
+               "browse to.\n\n If tab completion has not been "
+               "disabled, you can use the Tab key to (attempt to) "
+               "automatically complete the directory name.\n\n The "
+               "following function keys are available in Browser Go "
+               "To Directory mode:\n\n");
+       htx[1] = NULL;
+       htx[2] = NULL;
+    }
 #endif
 #ifndef DISABLE_SPELLER
-    else if (currshortcut == spell_list)
-       htx = N_("Spell Check Help Text\n\n "
-               "The spell checker checks the spelling of all text "
-               "in the current file.  When an unknown word is "
+    else if (currshortcut == spell_list) {
+       htx[0] = N_("Spell Check Help Text\n\n "
+               "The spell checker checks the spelling of all text in "
+               "the current file.  When an unknown word is "
                "encountered, it is highlighted and a replacement can "
                "be edited.  It will then prompt to replace every "
-               "instance of the given misspelled word in the "
-               "current file, or, if you have selected text with the "
-               "mark, in the selected text.\n\n The following other "
-               "functions are available in Spell Check mode:\n\n");
+               "instance of the given misspelled word in the current "
+               "file, or, if you have selected text with the mark, in "
+               "the selected text.\n\n The following other functions "
+               "are available in Spell Check mode:\n\n");
+       htx[1] = NULL;
+       htx[2] = NULL;
+    }
 #endif
 #ifndef NANO_SMALL
-    else if (currshortcut == extcmd_list)
-       htx = N_("External Command Help Text\n\n "
-               "This menu allows you to insert the output of a command "
-               "run by the shell into the current buffer (or a new "
-               "buffer in multibuffer mode). If you need another blank "
-               "buffer, do not enter any command.\n\n The following keys "
-               "are available in this mode:\n\n");
+    else if (currshortcut == extcmd_list) {
+       htx[0] = N_("Execute Command Help Text\n\n "
+               "This menu allows you to insert the output of a "
+               "command run by the shell into the current buffer (or "
+               "a new buffer in multiple file buffer mode). If you "
+               "need another blank buffer, do not enter any "
+               "command.\n\n The following keys are available in "
+               "Execute Command mode:\n\n");
+       htx[1] = NULL;
+       htx[2] = NULL;
+    }
 #endif
-    else
+    else {
        /* Default to the main help list. */
-       htx = N_(" nano help text\n\n "
-         "The nano editor is designed to emulate the functionality and "
-         "ease-of-use of the UW Pico text editor.  There are four main "
-         "sections of the editor.  The top line shows the program "
-         "version, the current filename being edited, and whether "
-         "or not the file has been modified.  Next is the main editor "
-         "window showing the file being edited.  The status line is "
-         "the third line from the bottom and shows important messages.  "
-         "The bottom two lines show the most commonly used shortcuts "
-         "in the editor.\n\n "
-         "The notation for shortcuts is as follows: Control-key "
-         "sequences are notated with a caret (^) symbol and can be "
-         "entered either by using the Control (Ctrl) key or pressing the "
-         "Esc key twice.  Escape-key sequences are notated with the Meta "
-         "(M) symbol and can be entered using either the Esc, Alt or "
-         "Meta key depending on your keyboard setup.  Also, pressing Esc "
-         "twice and then typing a three-digit decimal number from 000 to "
-         "255 will enter the character with the corresponding value.  "
-         "The following keystrokes are available in the main editor "
-         "window.  Alternative keys are shown in parentheses:\n\n");
-
-    htx = _(htx);
-
-    allocsize += strlen(htx);
+       htx[0] = N_(" nano help text\n\n "
+               "The nano editor is designed to emulate the "
+               "functionality and ease-of-use of the UW Pico text "
+               "editor.  There are four main sections of the editor.  "
+               "The top line shows the program version, the current "
+               "filename being edited, and whether or not the file "
+               "has been modified.  Next is the main editor window "
+               "showing the file being edited.  The status line is "
+               "the third line from the bottom and shows important "
+               "messages.  The bottom two lines show the most "
+               "commonly used shortcuts in the editor.\n\n ");
+       htx[1] = N_("The notation for shortcuts is as follows: "
+               "Control-key sequences are notated with a caret (^) "
+               "symbol and can be entered either by using the Control "
+               "(Ctrl) key or pressing the Escape (Esc) key twice.  "
+               "Escape-key sequences are notated with the Meta (M) "
+               "symbol and can be entered using either the Esc, Alt, "
+               "or Meta key depending on your keyboard setup.  ");
+       htx[2] = N_("Also, pressing Esc twice and then typing a "
+               "three-digit decimal number from 000 to 255 will enter "
+               "the character with the corresponding value.  The "
+               "following keystrokes are available in the main editor "
+               "window.  Alternative keys are shown in "
+               "parentheses:\n\n");
+    }
+
+    htx[0] = _(htx[0]);
+    if (htx[1] != NULL)
+       htx[1] = _(htx[1]);
+    if (htx[2] != NULL)
+       htx[2] = _(htx[2]);
+
+    allocsize += strlen(htx[0]);
+    if (htx[1] != NULL)
+       allocsize += strlen(htx[1]);
+    if (htx[2] != NULL)
+       allocsize += strlen(htx[2]);
 
     /* The space needed for the shortcut lists, at most COLS characters,
      * plus '\n'. */
@@ -414,7 +453,12 @@ void help_init(void)
     help_text = charalloc(allocsize + 1);
 
     /* Now add the text we want. */
-    strcpy(help_text, htx);
+    strcpy(help_text, htx[0]);
+    if (htx[1] != NULL)
+       strcat(help_text, htx[1]);
+    if (htx[2] != NULL)
+       strcat(help_text, htx[2]);
+
     ptr = help_text + strlen(help_text);
 
     /* Now add our shortcut info.  Assume that each shortcut has, at the