Chris Allegretta | 11b0011 | 2000-08-06 21:13:45 +0000 | [diff] [blame] | 1 | /* $Id$ */ |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 2 | /************************************************************************** |
| 3 | * global.c * |
| 4 | * * |
David Lawrence Ramsey | c13b7f0 | 2005-01-01 07:28:15 +0000 | [diff] [blame] | 5 | * Copyright (C) 1999-2005 Chris Allegretta * |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 6 | * This program is free software; you can redistribute it and/or modify * |
| 7 | * it under the terms of the GNU General Public License as published by * |
Chris Allegretta | 3a24f3f | 2001-10-24 11:33:54 +0000 | [diff] [blame] | 8 | * the Free Software Foundation; either version 2, or (at your option) * |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 9 | * any later version. * |
| 10 | * * |
| 11 | * This program is distributed in the hope that it will be useful, * |
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
| 14 | * GNU General Public License for more details. * |
| 15 | * * |
| 16 | * You should have received a copy of the GNU General Public License * |
| 17 | * along with this program; if not, write to the Free Software * |
| 18 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * |
| 19 | * * |
| 20 | **************************************************************************/ |
| 21 | |
Jordi Mallach | 55381aa | 2004-11-17 23:17:05 +0000 | [diff] [blame] | 22 | #ifdef HAVE_CONFIG_H |
| 23 | #include <config.h> |
| 24 | #endif |
Chris Allegretta | 6efda54 | 2001-04-28 18:03:52 +0000 | [diff] [blame] | 25 | |
Chris Allegretta | 1dd0bc9 | 2002-10-13 18:43:45 +0000 | [diff] [blame] | 26 | #include <stdlib.h> |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 27 | #include <assert.h> |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 28 | #include "proto.h" |
David Lawrence Ramsey | f21cd10 | 2002-06-13 00:40:19 +0000 | [diff] [blame] | 29 | #include "nano.h" |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 30 | |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 31 | /* Global variables */ |
Chris Allegretta | 48b0670 | 2002-02-22 04:30:50 +0000 | [diff] [blame] | 32 | |
David Lawrence Ramsey | f5b256b | 2003-10-03 20:26:25 +0000 | [diff] [blame] | 33 | #ifndef DISABLE_WRAPJUSTIFY |
David Lawrence Ramsey | 49c3f24 | 2004-07-12 16:07:14 +0000 | [diff] [blame] | 34 | /* wrap_at might be set in rcfile.c or nano.c. */ |
| 35 | ssize_t wrap_at = -CHARS_FROM_EOL; /* Right justified fill value, |
| 36 | allows resize */ |
David Lawrence Ramsey | f5b256b | 2003-10-03 20:26:25 +0000 | [diff] [blame] | 37 | #endif |
| 38 | |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 39 | char *last_search = NULL; /* Last string we searched for */ |
| 40 | char *last_replace = NULL; /* Last replacement string */ |
| 41 | int search_last_line; /* Is this the last search line? */ |
| 42 | |
David Lawrence Ramsey | edab0cc | 2004-07-03 03:09:12 +0000 | [diff] [blame] | 43 | long flags = 0; /* Our flag containing many options */ |
David Lawrence Ramsey | f21cd10 | 2002-06-13 00:40:19 +0000 | [diff] [blame] | 44 | WINDOW *edit; /* The file portion of the editor */ |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 45 | WINDOW *topwin; /* Top line of screen */ |
| 46 | WINDOW *bottomwin; /* Bottom buffer */ |
Chris Allegretta | 1a6e904 | 2000-12-14 13:56:28 +0000 | [diff] [blame] | 47 | char *filename = NULL; /* Name of the file */ |
David Lawrence Ramsey | 5db0cdc | 2002-06-28 22:45:14 +0000 | [diff] [blame] | 48 | |
| 49 | #ifndef NANO_SMALL |
| 50 | struct stat originalfilestat; /* Stat for the file as we loaded it */ |
| 51 | #endif |
| 52 | |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 53 | int editwinrows = 0; /* How many rows long is the edit |
| 54 | window? */ |
| 55 | filestruct *current; /* Current buffer pointer */ |
David Lawrence Ramsey | 7a97e18 | 2004-10-30 01:03:15 +0000 | [diff] [blame] | 56 | size_t current_x = 0; /* Current x-coordinate in the edit |
| 57 | window */ |
| 58 | int current_y = 0; /* Current y-coordinate in the edit |
| 59 | window */ |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 60 | filestruct *fileage = NULL; /* Our file buffer */ |
| 61 | filestruct *edittop = NULL; /* Pointer to the top of the edit |
| 62 | buffer with respect to the |
| 63 | file struct */ |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 64 | filestruct *filebot = NULL; /* Last node in the file struct */ |
| 65 | filestruct *cutbuffer = NULL; /* A place to store cut text */ |
David Lawrence Ramsey | 93c8405 | 2004-11-23 04:08:28 +0000 | [diff] [blame] | 66 | #ifndef DISABLE_JUSTIFY |
| 67 | filestruct *jusbuffer = NULL; /* A place to store unjustified text */ |
| 68 | #endif |
David Lawrence Ramsey | 40bdb68 | 2004-11-03 22:03:41 +0000 | [diff] [blame] | 69 | partition *filepart = NULL; /* A place to store a portion of the |
| 70 | file struct */ |
David Lawrence Ramsey | 40bdb68 | 2004-11-03 22:03:41 +0000 | [diff] [blame] | 71 | |
Chris Allegretta | 355fbe5 | 2001-07-14 19:32:47 +0000 | [diff] [blame] | 72 | #ifdef ENABLE_MULTIBUFFER |
David Lawrence Ramsey | 3ece0b9 | 2004-12-01 15:11:27 +0000 | [diff] [blame] | 73 | openfilestruct *open_files = NULL; /* The list of open file |
| 74 | buffers */ |
Chris Allegretta | 2d7893d | 2001-07-11 02:08:33 +0000 | [diff] [blame] | 75 | #endif |
| 76 | |
David Lawrence Ramsey | 89bb937 | 2004-05-29 16:47:52 +0000 | [diff] [blame] | 77 | #if !defined(NANO_SMALL) && defined(ENABLE_NANORC) |
| 78 | char *whitespace = NULL; /* Characters used when displaying |
| 79 | the first characters of tabs and |
| 80 | spaces. */ |
| 81 | #endif |
| 82 | |
Chris Allegretta | e4f940d | 2002-03-03 22:36:36 +0000 | [diff] [blame] | 83 | #ifndef DISABLE_JUSTIFY |
David Lawrence Ramsey | 2c62b07 | 2004-05-29 16:38:57 +0000 | [diff] [blame] | 84 | char *punct = NULL; /* Closing punctuation that can end |
| 85 | sentences. */ |
| 86 | char *brackets = NULL; /* Closing brackets that can follow |
| 87 | closing punctuation and can end |
| 88 | sentences. */ |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 89 | char *quotestr = NULL; /* Quote string. The default value is |
| 90 | set in main(). */ |
David Lawrence Ramsey | 819c7f0 | 2004-07-30 03:54:34 +0000 | [diff] [blame] | 91 | #ifdef HAVE_REGEX_H |
| 92 | regex_t quotereg; /* Compiled quotestr regular expression. */ |
| 93 | int quoterc; /* Did it compile? */ |
| 94 | char *quoteerr = NULL; /* The error message. */ |
| 95 | #else |
| 96 | size_t quotelen; /* strlen(quotestr) */ |
| 97 | #endif |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 98 | #endif |
Chris Allegretta | e4f940d | 2002-03-03 22:36:36 +0000 | [diff] [blame] | 99 | |
David Lawrence Ramsey | 04e42a6 | 2004-02-28 16:24:31 +0000 | [diff] [blame] | 100 | #ifndef NANO_SMALL |
| 101 | char *backup_dir = NULL; /* Backup directory. */ |
| 102 | #endif |
| 103 | |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 104 | char *answer = NULL; /* Answer str to many questions */ |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 105 | int totlines = 0; /* Total number of lines in the file */ |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 106 | long totsize = 0; /* Total number of bytes in the file */ |
David Lawrence Ramsey | 86e851b | 2004-07-28 20:46:25 +0000 | [diff] [blame] | 107 | size_t placewewant = 0; /* The column we'd like the cursor |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 108 | to jump to when we go to the |
| 109 | next or previous line */ |
| 110 | |
David Lawrence Ramsey | 49c3f24 | 2004-07-12 16:07:14 +0000 | [diff] [blame] | 111 | ssize_t tabsize = -1; /* Our internal tabsize variable. The |
| 112 | default value is set in main(). */ |
Chris Allegretta | 6d690a3 | 2000-08-03 22:51:21 +0000 | [diff] [blame] | 113 | |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 114 | char *hblank = NULL; /* A horizontal blank line */ |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 115 | #ifndef DISABLE_HELP |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 116 | char *help_text; /* The text in the help window */ |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 117 | #endif |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 118 | |
| 119 | /* More stuff for the marker select */ |
| 120 | |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 121 | #ifndef NANO_SMALL |
David Lawrence Ramsey | f28f50e | 2004-01-09 23:04:55 +0000 | [diff] [blame] | 122 | filestruct *mark_beginbuf; /* The begin marker buffer */ |
David Lawrence Ramsey | 687776b | 2004-10-30 01:16:08 +0000 | [diff] [blame] | 123 | size_t mark_beginx; /* X value in the string to start */ |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 124 | #endif |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 125 | |
Chris Allegretta | e1f1452 | 2001-09-19 03:19:43 +0000 | [diff] [blame] | 126 | #ifndef DISABLE_OPERATINGDIR |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 127 | char *operating_dir = NULL; /* Operating directory, which we can't */ |
| 128 | char *full_operating_dir = NULL;/* go higher than */ |
Chris Allegretta | e1f1452 | 2001-09-19 03:19:43 +0000 | [diff] [blame] | 129 | #endif |
| 130 | |
Chris Allegretta | 8d8e012 | 2001-04-18 04:28:54 +0000 | [diff] [blame] | 131 | #ifndef DISABLE_SPELLER |
Chris Allegretta | 7c27be4 | 2002-05-05 23:03:54 +0000 | [diff] [blame] | 132 | char *alt_speller = NULL; /* Alternative spell command */ |
Chris Allegretta | 8d8e012 | 2001-04-18 04:28:54 +0000 | [diff] [blame] | 133 | #endif |
| 134 | |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 135 | shortcut *main_list = NULL; |
| 136 | shortcut *whereis_list = NULL; |
| 137 | shortcut *replace_list = NULL; |
Chris Allegretta | 48b0670 | 2002-02-22 04:30:50 +0000 | [diff] [blame] | 138 | shortcut *replace_list_2 = NULL; /* 2nd half of replace dialog */ |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 139 | shortcut *gotoline_list = NULL; |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 140 | shortcut *writefile_list = NULL; |
| 141 | shortcut *insertfile_list = NULL; |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 142 | #ifndef DISABLE_HELP |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 143 | shortcut *help_list = NULL; |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 144 | #endif |
| 145 | #ifndef DISABLE_SPELLER |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 146 | shortcut *spell_list = NULL; |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 147 | #endif |
Chris Allegretta | 7162e3d | 2002-04-06 05:02:14 +0000 | [diff] [blame] | 148 | #ifndef NANO_SMALL |
Chris Allegretta | 52c5a6e | 2002-03-21 05:07:28 +0000 | [diff] [blame] | 149 | shortcut *extcmd_list = NULL; |
Chris Allegretta | 7162e3d | 2002-04-06 05:02:14 +0000 | [diff] [blame] | 150 | #endif |
Rocco Corsi | af5c302 | 2001-01-12 07:51:05 +0000 | [diff] [blame] | 151 | #ifndef DISABLE_BROWSER |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 152 | shortcut *browser_list = NULL; |
Chris Allegretta | 201f1d9 | 2003-02-05 02:51:19 +0000 | [diff] [blame] | 153 | shortcut *gotodir_list = NULL; |
Chris Allegretta | f4b9601 | 2001-01-03 07:11:47 +0000 | [diff] [blame] | 154 | #endif |
Chris Allegretta | 201f1d9 | 2003-02-05 02:51:19 +0000 | [diff] [blame] | 155 | |
Chris Allegretta | 8ce2413 | 2001-04-30 11:28:46 +0000 | [diff] [blame] | 156 | #ifdef ENABLE_COLOR |
David Lawrence Ramsey | 9b13ff3 | 2002-12-22 16:30:00 +0000 | [diff] [blame] | 157 | const colortype *colorstrings = NULL; |
| 158 | syntaxtype *syntaxes = NULL; |
| 159 | char *syntaxstr = NULL; |
Chris Allegretta | 8ce2413 | 2001-04-30 11:28:46 +0000 | [diff] [blame] | 160 | #endif |
| 161 | |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 162 | const shortcut *currshortcut; /* Current shortcut list we're using */ |
Chris Allegretta | 6b58acd | 2001-04-12 03:01:53 +0000 | [diff] [blame] | 163 | |
Chris Allegretta | f0b26df | 2001-01-20 22:18:18 +0000 | [diff] [blame] | 164 | #ifndef NANO_SMALL |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 165 | toggle *toggles = NULL; |
Chris Allegretta | f0b26df | 2001-01-20 22:18:18 +0000 | [diff] [blame] | 166 | #endif |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 167 | |
Chris Allegretta | 5beed50 | 2003-01-05 20:41:21 +0000 | [diff] [blame] | 168 | #ifndef NANO_SMALL |
| 169 | historyheadtype search_history; |
| 170 | historyheadtype replace_history; |
| 171 | #endif |
| 172 | |
Chris Allegretta | 9fc8d43 | 2000-07-07 01:49:52 +0000 | [diff] [blame] | 173 | /* Regular expressions */ |
| 174 | |
Chris Allegretta | 805c26d | 2000-09-06 13:39:17 +0000 | [diff] [blame] | 175 | #ifdef HAVE_REGEX_H |
Chris Allegretta | bd9e7c3 | 2000-10-26 01:44:42 +0000 | [diff] [blame] | 176 | regex_t search_regexp; /* Global to store compiled search regexp */ |
| 177 | regmatch_t regmatches[10]; /* Match positions for parenthetical |
| 178 | subexpressions, max of 10 */ |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 179 | #endif |
Chris Allegretta | 3533a34 | 2002-03-24 23:19:32 +0000 | [diff] [blame] | 180 | |
David Lawrence Ramsey | 82dc1c1 | 2004-08-12 03:27:54 +0000 | [diff] [blame] | 181 | bool curses_ended = FALSE; /* Indicates to statusbar() to simply |
Chris Allegretta | a0d8997 | 2003-02-03 03:32:08 +0000 | [diff] [blame] | 182 | * write to stderr, since endwin() has |
| 183 | * ended curses mode. */ |
| 184 | |
David Lawrence Ramsey | a27bd65 | 2004-08-17 05:23:38 +0000 | [diff] [blame] | 185 | #ifdef ENABLE_NANORC |
| 186 | char *homedir = NULL; /* $HOME or from /etc/passwd. */ |
| 187 | #endif |
| 188 | |
David Lawrence Ramsey | ebd0d7c | 2004-07-01 18:59:52 +0000 | [diff] [blame] | 189 | size_t length_of_list(const shortcut *s) |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 190 | { |
David Lawrence Ramsey | ebd0d7c | 2004-07-01 18:59:52 +0000 | [diff] [blame] | 191 | size_t i = 0; |
David Lawrence Ramsey | e21adfa | 2002-09-13 18:14:04 +0000 | [diff] [blame] | 192 | |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 193 | for (; s != NULL; s = s->next) |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 194 | i++; |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 195 | return i; |
| 196 | } |
| 197 | |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 198 | /* Initialize a struct *without* our lovely braces =( */ |
David Lawrence Ramsey | 1576d53 | 2004-03-19 21:46:34 +0000 | [diff] [blame] | 199 | void sc_init_one(shortcut **shortcutage, int ctrlval, const char *desc, |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 200 | #ifndef DISABLE_HELP |
Chris Allegretta | f717f98 | 2003-02-13 22:25:01 +0000 | [diff] [blame] | 201 | const char *help, |
David Lawrence Ramsey | 5db0cdc | 2002-06-28 22:45:14 +0000 | [diff] [blame] | 202 | #endif |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 203 | int metaval, int funcval, int miscval, bool view, void |
David Lawrence Ramsey | 1576d53 | 2004-03-19 21:46:34 +0000 | [diff] [blame] | 204 | (*func)(void)) |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 205 | { |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 206 | shortcut *s; |
| 207 | |
| 208 | if (*shortcutage == NULL) { |
David Lawrence Ramsey | 70047ee | 2003-06-14 20:41:34 +0000 | [diff] [blame] | 209 | *shortcutage = (shortcut *)nmalloc(sizeof(shortcut)); |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 210 | s = *shortcutage; |
| 211 | } else { |
| 212 | for (s = *shortcutage; s->next != NULL; s = s->next) |
| 213 | ; |
David Lawrence Ramsey | 70047ee | 2003-06-14 20:41:34 +0000 | [diff] [blame] | 214 | s->next = (shortcut *)nmalloc(sizeof(shortcut)); |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 215 | s = s->next; |
| 216 | } |
| 217 | |
David Lawrence Ramsey | 1576d53 | 2004-03-19 21:46:34 +0000 | [diff] [blame] | 218 | s->ctrlval = ctrlval; |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 219 | s->desc = _(desc); |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 220 | #ifndef DISABLE_HELP |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 221 | s->help = _(help); |
David Lawrence Ramsey | 5db0cdc | 2002-06-28 22:45:14 +0000 | [diff] [blame] | 222 | #endif |
David Lawrence Ramsey | 1576d53 | 2004-03-19 21:46:34 +0000 | [diff] [blame] | 223 | s->metaval = metaval; |
| 224 | s->funcval = funcval; |
| 225 | s->miscval = miscval; |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 226 | s->viewok = view; |
| 227 | s->func = func; |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 228 | s->next = NULL; |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 229 | } |
| 230 | |
David Lawrence Ramsey | 1f1ebb8 | 2004-11-11 21:50:01 +0000 | [diff] [blame] | 231 | void shortcut_init(bool unjustify) |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 232 | { |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 233 | const char *get_help_msg = N_("Get Help"); |
| 234 | const char *exit_msg = N_("Exit"); |
| 235 | const char *prev_page_msg = N_("Prev Page"); |
| 236 | const char *next_page_msg = N_("Next Page"); |
| 237 | const char *replace_msg = N_("Replace"); |
| 238 | const char *go_to_line_msg = N_("Go To Line"); |
| 239 | const char *cancel_msg = N_("Cancel"); |
| 240 | const char *first_line_msg = N_("First Line"); |
| 241 | const char *last_line_msg = N_("Last Line"); |
David Lawrence Ramsey | 295d172 | 2005-01-01 07:43:32 +0000 | [diff] [blame] | 242 | #ifndef NANO_SMALL |
| 243 | const char *cut_till_end_msg = N_("CutTillEnd"); |
| 244 | #endif |
David Lawrence Ramsey | db6015c | 2004-09-11 21:41:13 +0000 | [diff] [blame] | 245 | #ifndef DISABLE_JUSTIFY |
| 246 | const char *beg_of_par_msg = N_("Beg of Par"); |
| 247 | const char *end_of_par_msg = N_("End of Par"); |
| 248 | const char *fulljstify_msg = N_("FullJstify"); |
| 249 | #endif |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 250 | #ifndef NANO_SMALL |
| 251 | const char *case_sens_msg = N_("Case Sens"); |
| 252 | const char *direction_msg = N_("Direction"); |
| 253 | #ifdef HAVE_REGEX_H |
| 254 | const char *regexp_msg = N_("Regexp"); |
| 255 | #endif |
| 256 | const char *history_msg = N_("History"); |
David Lawrence Ramsey | 47e82b1 | 2004-09-28 22:21:46 +0000 | [diff] [blame] | 257 | #ifdef ENABLE_MULTIBUFFER |
David Lawrence Ramsey | 04a8d1c | 2004-09-28 22:14:58 +0000 | [diff] [blame] | 258 | const char *new_buffer_msg = N_("New Buffer"); |
David Lawrence Ramsey | 47e82b1 | 2004-09-28 22:21:46 +0000 | [diff] [blame] | 259 | #endif |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 260 | #endif /* !NANO_SMALL */ |
| 261 | #ifndef DISABLE_BROWSER |
| 262 | const char *to_files_msg = N_("To Files"); |
| 263 | #endif |
| 264 | |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 265 | #ifndef DISABLE_HELP |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 266 | const char *nano_help_msg = N_("Invoke the help menu"); |
| 267 | const char *nano_exit_msg = |
Chris Allegretta | 7162e3d | 2002-04-06 05:02:14 +0000 | [diff] [blame] | 268 | #ifdef ENABLE_MULTIBUFFER |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 269 | N_("Close currently loaded file/Exit from nano") |
Chris Allegretta | 2d7893d | 2001-07-11 02:08:33 +0000 | [diff] [blame] | 270 | #else |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 271 | N_("Exit from nano") |
Chris Allegretta | 2d7893d | 2001-07-11 02:08:33 +0000 | [diff] [blame] | 272 | #endif |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 273 | ; |
| 274 | const char *nano_writeout_msg = N_("Write the current file to disk"); |
| 275 | const char *nano_justify_msg = N_("Justify the current paragraph"); |
| 276 | const char *nano_insert_msg = |
| 277 | N_("Insert another file into the current one"); |
| 278 | const char *nano_whereis_msg = N_("Search for text within the editor"); |
| 279 | const char *nano_prevpage_msg = N_("Move to the previous screen"); |
| 280 | const char *nano_nextpage_msg = N_("Move to the next screen"); |
| 281 | const char *nano_cut_msg = |
| 282 | N_("Cut the current line and store it in the cutbuffer"); |
| 283 | const char *nano_uncut_msg = |
| 284 | N_("Uncut from the cutbuffer into the current line"); |
| 285 | const char *nano_cursorpos_msg = N_("Show the position of the cursor"); |
| 286 | const char *nano_spell_msg = N_("Invoke the spell checker, if available"); |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 287 | const char *nano_gotoline_msg = N_("Go to a specific line number"); |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 288 | const char *nano_replace_msg = N_("Replace text within the editor"); |
David Lawrence Ramsey | 4b4b608 | 2004-11-01 22:54:40 +0000 | [diff] [blame] | 289 | #ifndef NANO_SMALL |
David Lawrence Ramsey | 8381fdd | 2004-11-01 22:40:02 +0000 | [diff] [blame] | 290 | const char *nano_mark_msg = N_("Mark text at the cursor position"); |
| 291 | const char *nano_whereis_next_msg = N_("Repeat last search"); |
David Lawrence Ramsey | 4b4b608 | 2004-11-01 22:54:40 +0000 | [diff] [blame] | 292 | #endif |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 293 | const char *nano_prevline_msg = N_("Move to the previous line"); |
| 294 | const char *nano_nextline_msg = N_("Move to the next line"); |
| 295 | const char *nano_forward_msg = N_("Move forward one character"); |
| 296 | const char *nano_back_msg = N_("Move back one character"); |
| 297 | const char *nano_home_msg = N_("Move to the beginning of the current line"); |
| 298 | const char *nano_end_msg = N_("Move to the end of the current line"); |
| 299 | const char *nano_refresh_msg = N_("Refresh (redraw) the current screen"); |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 300 | const char *nano_delete_msg = N_("Delete the character under the cursor"); |
| 301 | const char *nano_backspace_msg = |
| 302 | N_("Delete the character to the left of the cursor"); |
David Lawrence Ramsey | e7c4168 | 2004-10-23 14:53:07 +0000 | [diff] [blame] | 303 | const char *nano_tab_msg = |
| 304 | N_("Insert a tab character at the cursor position"); |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 305 | const char *nano_enter_msg = |
| 306 | N_("Insert a carriage return at the cursor position"); |
David Lawrence Ramsey | 00d7798 | 2004-08-07 21:27:37 +0000 | [diff] [blame] | 307 | #ifndef NANO_SMALL |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 308 | const char *nano_nextword_msg = N_("Move forward one word"); |
| 309 | const char *nano_prevword_msg = N_("Move backward one word"); |
David Lawrence Ramsey | 00d7798 | 2004-08-07 21:27:37 +0000 | [diff] [blame] | 310 | #endif |
David Lawrence Ramsey | db6015c | 2004-09-11 21:41:13 +0000 | [diff] [blame] | 311 | #ifndef DISABLE_JUSTIFY |
| 312 | const char *nano_parabegin_msg = |
| 313 | N_("Go to the beginning of the current paragraph"); |
| 314 | const char *nano_paraend_msg = |
| 315 | N_("Go to the end of the current paragraph"); |
| 316 | #endif |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 317 | #ifdef ENABLE_MULTIBUFFER |
David Lawrence Ramsey | db6015c | 2004-09-11 21:41:13 +0000 | [diff] [blame] | 318 | const char *nano_openprev_msg = N_("Switch to the previous file buffer"); |
| 319 | const char *nano_opennext_msg = N_("Switch to the next file buffer"); |
| 320 | #endif |
| 321 | const char *nano_verbatim_msg = N_("Insert character(s) verbatim"); |
David Lawrence Ramsey | 295d172 | 2005-01-01 07:43:32 +0000 | [diff] [blame] | 322 | #ifndef NANO_SMALL |
| 323 | const char *nano_cut_till_end_msg = |
| 324 | N_("Cut from the cursor position to the end of the file"); |
| 325 | #endif |
David Lawrence Ramsey | db6015c | 2004-09-11 21:41:13 +0000 | [diff] [blame] | 326 | #ifndef DISABLE_JUSTIFY |
| 327 | const char *nano_fulljustify_msg = N_("Justify the entire file"); |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 328 | #endif |
David Lawrence Ramsey | 8381fdd | 2004-11-01 22:40:02 +0000 | [diff] [blame] | 329 | #if !defined(NANO_SMALL) && defined(HAVE_REGEX_H) |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 330 | const char *nano_bracket_msg = N_("Find other bracket"); |
| 331 | #endif |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 332 | const char *nano_cancel_msg = N_("Cancel the current function"); |
| 333 | const char *nano_firstline_msg = N_("Go to the first line of the file"); |
| 334 | const char *nano_lastline_msg = N_("Go to the last line of the file"); |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 335 | #ifndef NANO_SMALL |
| 336 | const char *nano_case_msg = |
| 337 | N_("Make the current search/replace case (in)sensitive"); |
| 338 | const char *nano_reverse_msg = |
| 339 | N_("Make the current search/replace go backwards"); |
| 340 | #ifdef HAVE_REGEX_H |
| 341 | const char *nano_regexp_msg = N_("Use regular expressions"); |
| 342 | #endif |
| 343 | const char *nano_editstr_msg = |
| 344 | N_("Edit the previous search/replace strings"); |
| 345 | #endif /* !NANO_SMALL */ |
| 346 | |
| 347 | #ifndef DISABLE_BROWSER |
| 348 | const char *nano_tofiles_msg = N_("Go to file browser"); |
| 349 | #endif |
| 350 | #ifndef NANO_SMALL |
| 351 | const char *nano_dos_msg = N_("Write file out in DOS format"); |
| 352 | const char *nano_mac_msg = N_("Write file out in Mac format"); |
| 353 | #endif |
| 354 | const char *nano_append_msg = N_("Append to the current file"); |
| 355 | const char *nano_prepend_msg = N_("Prepend to the current file"); |
| 356 | #ifndef NANO_SMALL |
| 357 | const char *nano_backup_msg = N_("Back up original file when saving"); |
| 358 | const char *nano_execute_msg = N_("Execute external command"); |
| 359 | #endif |
| 360 | #if defined(ENABLE_MULTIBUFFER) && !defined(NANO_SMALL) |
| 361 | const char *nano_multibuffer_msg = N_("Insert into new buffer"); |
| 362 | #endif |
| 363 | #ifndef DISABLE_BROWSER |
David Lawrence Ramsey | c41d428 | 2004-07-23 12:51:40 +0000 | [diff] [blame] | 364 | const char *nano_exitbrowser_msg = N_("Exit from the file browser"); |
| 365 | const char *nano_gotodir_msg = N_("Go to directory"); |
Chris Allegretta | 2bef182 | 2001-09-28 19:53:11 +0000 | [diff] [blame] | 366 | #endif |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 367 | #endif /* !DISABLE_HELP */ |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 368 | |
David Lawrence Ramsey | 8e4adcd | 2004-05-20 03:29:33 +0000 | [diff] [blame] | 369 | /* The following macro is to be used in calling sc_init_one(). The |
| 370 | * point is that sc_init_one() takes 9 arguments, unless DISABLE_HELP is |
| 371 | * defined, when the 4th one should not be there. */ |
David Lawrence Ramsey | ea43a1d | 2004-03-02 22:52:57 +0000 | [diff] [blame] | 372 | #ifndef DISABLE_HELP |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 373 | # define IFHELP(help, nextvar) help, nextvar |
David Lawrence Ramsey | ea43a1d | 2004-03-02 22:52:57 +0000 | [diff] [blame] | 374 | #else |
| 375 | # define IFHELP(help, nextvar) nextvar |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 376 | #endif |
David Lawrence Ramsey | a593f53 | 2003-11-28 19:47:42 +0000 | [diff] [blame] | 377 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 378 | free_shortcutage(&main_list); |
| 379 | |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 380 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 381 | sc_init_one(&main_list, NANO_HELP_KEY, get_help_msg, |
| 382 | IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY, |
| 383 | NANO_NO_KEY, VIEW, |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 384 | #ifndef DISABLE_HELP |
| 385 | do_help |
| 386 | #else |
| 387 | nano_disabled_msg |
| 388 | #endif |
| 389 | ); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 390 | |
David Lawrence Ramsey | 5b3dd0f | 2004-11-25 04:39:07 +0000 | [diff] [blame] | 391 | /* Translators: try to keep this string under 10 characters long */ |
| 392 | sc_init_one(&main_list, NANO_EXIT_KEY, |
Chris Allegretta | 355fbe5 | 2001-07-14 19:32:47 +0000 | [diff] [blame] | 393 | #ifdef ENABLE_MULTIBUFFER |
David Lawrence Ramsey | 5b3dd0f | 2004-11-25 04:39:07 +0000 | [diff] [blame] | 394 | open_files != NULL && open_files != open_files->next ? |
| 395 | N_("Close") : |
Chris Allegretta | 2d7893d | 2001-07-11 02:08:33 +0000 | [diff] [blame] | 396 | #endif |
David Lawrence Ramsey | 5b3dd0f | 2004-11-25 04:39:07 +0000 | [diff] [blame] | 397 | exit_msg, IFHELP(nano_exit_msg, NANO_NO_KEY), NANO_EXIT_FKEY, |
| 398 | NANO_NO_KEY, VIEW, do_exit); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 399 | |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 400 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 401 | sc_init_one(&main_list, NANO_WRITEOUT_KEY, N_("WriteOut"), |
| 402 | IFHELP(nano_writeout_msg, NANO_NO_KEY), NANO_WRITEOUT_FKEY, |
| 403 | NANO_NO_KEY, NOVIEW, do_writeout_void); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 404 | |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 405 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 406 | sc_init_one(&main_list, NANO_JUSTIFY_KEY, N_("Justify"), |
| 407 | IFHELP(nano_justify_msg, NANO_NO_KEY), |
| 408 | NANO_JUSTIFY_FKEY, NANO_NO_KEY, NOVIEW, |
David Lawrence Ramsey | a539fce | 2004-06-29 00:43:56 +0000 | [diff] [blame] | 409 | #ifndef DISABLE_JUSTIFY |
David Lawrence Ramsey | 8d3e7f3 | 2004-05-13 17:28:03 +0000 | [diff] [blame] | 410 | do_justify_void |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 411 | #else |
| 412 | nano_disabled_msg |
| 413 | #endif |
| 414 | ); |
Chris Allegretta | 32da456 | 2002-01-02 15:12:21 +0000 | [diff] [blame] | 415 | |
David Lawrence Ramsey | 32e3b88 | 2004-05-29 01:20:17 +0000 | [diff] [blame] | 416 | /* We allow inserting files in view mode if multibuffers are |
| 417 | * available, so that we can view multiple files. */ |
| 418 | /* If we're using restricted mode, inserting files is disabled since |
| 419 | * it allows reading from or writing to files not specified on the |
| 420 | * command line. */ |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 421 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 422 | sc_init_one(&main_list, NANO_INSERTFILE_KEY, N_("Read File"), |
| 423 | IFHELP(nano_insert_msg, NANO_NO_KEY), NANO_INSERTFILE_FKEY, |
| 424 | NANO_NO_KEY, |
Chris Allegretta | 32da456 | 2002-01-02 15:12:21 +0000 | [diff] [blame] | 425 | #ifdef ENABLE_MULTIBUFFER |
Chris Allegretta | d845193 | 2003-03-11 03:50:40 +0000 | [diff] [blame] | 426 | VIEW |
Chris Allegretta | 32da456 | 2002-01-02 15:12:21 +0000 | [diff] [blame] | 427 | #else |
Chris Allegretta | d845193 | 2003-03-11 03:50:40 +0000 | [diff] [blame] | 428 | NOVIEW |
Chris Allegretta | 32da456 | 2002-01-02 15:12:21 +0000 | [diff] [blame] | 429 | #endif |
David Lawrence Ramsey | 8001e27 | 2004-11-12 00:48:18 +0000 | [diff] [blame] | 430 | , !ISSET(RESTRICTED) ? do_insertfile_void : |
| 431 | nano_disabled_msg); |
Chris Allegretta | af6414a | 2001-02-11 19:05:05 +0000 | [diff] [blame] | 432 | |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 433 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 434 | sc_init_one(&main_list, NANO_WHEREIS_KEY, N_("Where Is"), |
| 435 | IFHELP(nano_whereis_msg, NANO_NO_KEY), NANO_WHEREIS_FKEY, |
| 436 | NANO_NO_KEY, VIEW, do_search); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 437 | |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 438 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 439 | sc_init_one(&main_list, NANO_PREVPAGE_KEY, prev_page_msg, |
| 440 | IFHELP(nano_prevpage_msg, NANO_NO_KEY), NANO_PREVPAGE_FKEY, |
| 441 | NANO_NO_KEY, VIEW, do_page_up); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 442 | |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 443 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 444 | sc_init_one(&main_list, NANO_NEXTPAGE_KEY, next_page_msg, |
| 445 | IFHELP(nano_nextpage_msg, NANO_NO_KEY), NANO_NEXTPAGE_FKEY, |
| 446 | NANO_NO_KEY, VIEW, do_page_down); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 447 | |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 448 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 449 | sc_init_one(&main_list, NANO_CUT_KEY, N_("Cut Text"), |
| 450 | IFHELP(nano_cut_msg, NANO_NO_KEY), NANO_CUT_FKEY, |
| 451 | NANO_NO_KEY, NOVIEW, do_cut_text); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 452 | |
Chris Allegretta | 0779835 | 2000-11-27 22:58:23 +0000 | [diff] [blame] | 453 | if (unjustify) |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 454 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 455 | sc_init_one(&main_list, NANO_UNJUSTIFY_KEY, N_("UnJustify"), |
| 456 | IFHELP(NULL, NANO_NO_KEY), NANO_UNJUSTIFY_FKEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 457 | NANO_NO_KEY, NOVIEW, NULL); |
Chris Allegretta | 0779835 | 2000-11-27 22:58:23 +0000 | [diff] [blame] | 458 | else |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 459 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 460 | sc_init_one(&main_list, NANO_UNCUT_KEY, N_("UnCut Txt"), |
David Lawrence Ramsey | f427694 | 2003-12-24 03:33:09 +0000 | [diff] [blame] | 461 | IFHELP(nano_uncut_msg, NANO_NO_KEY), NANO_UNCUT_FKEY, |
| 462 | NANO_NO_KEY, NOVIEW, do_uncut_text); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 463 | |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 464 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 465 | sc_init_one(&main_list, NANO_CURSORPOS_KEY, N_("Cur Pos"), |
| 466 | IFHELP(nano_cursorpos_msg, NANO_NO_KEY), NANO_CURSORPOS_FKEY, |
| 467 | NANO_NO_KEY, VIEW, do_cursorpos_void); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 468 | |
David Lawrence Ramsey | 32e3b88 | 2004-05-29 01:20:17 +0000 | [diff] [blame] | 469 | /* If we're using restricted mode, spell checking is disabled |
| 470 | * because it allows reading from or writing to files not specified |
| 471 | * on the command line. */ |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 472 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 473 | sc_init_one(&main_list, NANO_SPELL_KEY, N_("To Spell"), |
David Lawrence Ramsey | f427694 | 2003-12-24 03:33:09 +0000 | [diff] [blame] | 474 | IFHELP(nano_spell_msg, NANO_NO_KEY), NANO_SPELL_FKEY, |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 475 | NANO_NO_KEY, NOVIEW, |
| 476 | #ifndef DISABLE_SPELLER |
| 477 | !ISSET(RESTRICTED) ? do_spell : |
| 478 | #endif |
| 479 | nano_disabled_msg); |
David Lawrence Ramsey | a593f53 | 2003-11-28 19:47:42 +0000 | [diff] [blame] | 480 | |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 481 | sc_init_one(&main_list, NANO_GOTOLINE_KEY, go_to_line_msg, |
David Lawrence Ramsey | 4b4b608 | 2004-11-01 22:54:40 +0000 | [diff] [blame] | 482 | IFHELP(nano_gotoline_msg, NANO_GOTOLINE_ALTKEY), |
| 483 | NANO_GOTOLINE_FKEY, NANO_NO_KEY, VIEW, do_gotoline_void); |
David Lawrence Ramsey | a593f53 | 2003-11-28 19:47:42 +0000 | [diff] [blame] | 484 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 485 | sc_init_one(&main_list, NANO_REPLACE_KEY, replace_msg, |
David Lawrence Ramsey | 4b4b608 | 2004-11-01 22:54:40 +0000 | [diff] [blame] | 486 | IFHELP(nano_replace_msg, NANO_ALT_REPLACE_KEY), |
| 487 | NANO_REPLACE_FKEY, NANO_NO_KEY, NOVIEW, do_replace); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 488 | |
David Lawrence Ramsey | 4b4b608 | 2004-11-01 22:54:40 +0000 | [diff] [blame] | 489 | #ifndef NANO_SMALL |
David Lawrence Ramsey | 8381fdd | 2004-11-01 22:40:02 +0000 | [diff] [blame] | 490 | sc_init_one(&main_list, NANO_MARK_KEY, N_("Mark Text"), |
| 491 | IFHELP(nano_mark_msg, NANO_MARK_ALTKEY), NANO_MARK_FKEY, |
David Lawrence Ramsey | 4b4b608 | 2004-11-01 22:54:40 +0000 | [diff] [blame] | 492 | NANO_NO_KEY, NOVIEW, do_mark); |
David Lawrence Ramsey | 8381fdd | 2004-11-01 22:40:02 +0000 | [diff] [blame] | 493 | |
| 494 | sc_init_one(&main_list, NANO_NO_KEY, N_("Where Is Next"), |
| 495 | IFHELP(nano_whereis_next_msg, NANO_WHEREIS_NEXT_KEY), |
David Lawrence Ramsey | 4b4b608 | 2004-11-01 22:54:40 +0000 | [diff] [blame] | 496 | NANO_WHEREIS_NEXT_FKEY, NANO_NO_KEY, VIEW, do_research); |
David Lawrence Ramsey | 8381fdd | 2004-11-01 22:40:02 +0000 | [diff] [blame] | 497 | #endif |
David Lawrence Ramsey | 8381fdd | 2004-11-01 22:40:02 +0000 | [diff] [blame] | 498 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 499 | sc_init_one(&main_list, NANO_PREVLINE_KEY, N_("Prev Line"), |
| 500 | IFHELP(nano_prevline_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 501 | NANO_NO_KEY, VIEW, do_up); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 502 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 503 | sc_init_one(&main_list, NANO_NEXTLINE_KEY, N_("Next Line"), |
| 504 | IFHELP(nano_nextline_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 505 | NANO_NO_KEY, VIEW, do_down); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 506 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 507 | sc_init_one(&main_list, NANO_FORWARD_KEY, N_("Forward"), |
| 508 | IFHELP(nano_forward_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 509 | NANO_NO_KEY, VIEW, do_right_void); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 510 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 511 | sc_init_one(&main_list, NANO_BACK_KEY, N_("Back"), |
| 512 | IFHELP(nano_back_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 513 | NANO_NO_KEY, VIEW, do_left_void); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 514 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 515 | sc_init_one(&main_list, NANO_HOME_KEY, N_("Home"), |
| 516 | IFHELP(nano_home_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 517 | NANO_NO_KEY, VIEW, do_home); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 518 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 519 | sc_init_one(&main_list, NANO_END_KEY, N_("End"), |
| 520 | IFHELP(nano_end_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 521 | NANO_NO_KEY, VIEW, do_end); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 522 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 523 | sc_init_one(&main_list, NANO_REFRESH_KEY, N_("Refresh"), |
| 524 | IFHELP(nano_refresh_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 525 | NANO_NO_KEY, VIEW, total_refresh); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 526 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 527 | sc_init_one(&main_list, NANO_DELETE_KEY, N_("Delete"), |
| 528 | IFHELP(nano_delete_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 529 | NANO_NO_KEY, NOVIEW, do_delete); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 530 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 531 | sc_init_one(&main_list, NANO_BACKSPACE_KEY, N_("Backspace"), |
| 532 | IFHELP(nano_backspace_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 533 | NANO_NO_KEY, NOVIEW, do_backspace); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 534 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 535 | sc_init_one(&main_list, NANO_TAB_KEY, N_("Tab"), |
| 536 | IFHELP(nano_tab_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 537 | NANO_NO_KEY, NOVIEW, do_tab); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 538 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 539 | sc_init_one(&main_list, NANO_ENTER_KEY, N_("Enter"), |
| 540 | IFHELP(nano_enter_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 541 | NANO_NO_KEY, NOVIEW, do_enter); |
Chris Allegretta | af6414a | 2001-02-11 19:05:05 +0000 | [diff] [blame] | 542 | |
David Lawrence Ramsey | c596755 | 2002-06-21 03:20:06 +0000 | [diff] [blame] | 543 | #ifndef NANO_SMALL |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 544 | sc_init_one(&main_list, NANO_NEXTWORD_KEY, N_("Next Word"), |
| 545 | IFHELP(nano_nextword_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 546 | NANO_NO_KEY, VIEW, do_next_word); |
David Lawrence Ramsey | c596755 | 2002-06-21 03:20:06 +0000 | [diff] [blame] | 547 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 548 | sc_init_one(&main_list, NANO_NO_KEY, N_("Prev Word"), |
| 549 | IFHELP(nano_prevword_msg, NANO_PREVWORD_KEY), NANO_NO_KEY, |
| 550 | NANO_NO_KEY, VIEW, do_prev_word); |
Chris Allegretta | 8d990b5 | 2001-09-22 22:14:25 +0000 | [diff] [blame] | 551 | #endif |
David Lawrence Ramsey | e049706 | 2003-08-23 21:11:06 +0000 | [diff] [blame] | 552 | |
David Lawrence Ramsey | db6015c | 2004-09-11 21:41:13 +0000 | [diff] [blame] | 553 | #ifndef DISABLE_JUSTIFY |
| 554 | /* Translators: try to keep this string under 10 characters long */ |
| 555 | sc_init_one(&main_list, NANO_NO_KEY, beg_of_par_msg, |
| 556 | IFHELP(nano_parabegin_msg, NANO_PARABEGIN_ALTKEY1), NANO_NO_KEY, |
| 557 | NANO_PARABEGIN_ALTKEY2, VIEW, do_para_begin); |
| 558 | |
| 559 | /* Translators: try to keep this string under 10 characters long */ |
| 560 | sc_init_one(&main_list, NANO_NO_KEY, end_of_par_msg, |
| 561 | IFHELP(nano_paraend_msg, NANO_PARAEND_ALTKEY1), NANO_NO_KEY, |
| 562 | NANO_PARAEND_ALTKEY2, VIEW, do_para_end); |
| 563 | #endif |
David Lawrence Ramsey | e049706 | 2003-08-23 21:11:06 +0000 | [diff] [blame] | 564 | |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 565 | #ifdef ENABLE_MULTIBUFFER |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 566 | sc_init_one(&main_list, NANO_NO_KEY, N_("Previous File"), |
| 567 | IFHELP(nano_openprev_msg, NANO_OPENPREV_KEY), NANO_NO_KEY, |
| 568 | NANO_OPENPREV_ALTKEY, VIEW, open_prevfile_void); |
David Lawrence Ramsey | a593f53 | 2003-11-28 19:47:42 +0000 | [diff] [blame] | 569 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 570 | sc_init_one(&main_list, NANO_NO_KEY, N_("Next File"), |
| 571 | IFHELP(nano_opennext_msg, NANO_OPENNEXT_KEY), NANO_NO_KEY, |
| 572 | NANO_OPENNEXT_ALTKEY, VIEW, open_nextfile_void); |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 573 | #endif |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 574 | |
David Lawrence Ramsey | db6015c | 2004-09-11 21:41:13 +0000 | [diff] [blame] | 575 | sc_init_one(&main_list, NANO_NO_KEY, N_("Verbatim Input"), |
| 576 | IFHELP(nano_verbatim_msg, NANO_VERBATIM_KEY), NANO_NO_KEY, |
| 577 | NANO_NO_KEY, NOVIEW, do_verbatim_input); |
| 578 | |
David Lawrence Ramsey | 295d172 | 2005-01-01 07:43:32 +0000 | [diff] [blame] | 579 | #ifndef NANO_SMALL |
| 580 | /* Translators: try to keep this string under 10 characters long */ |
| 581 | sc_init_one(&main_list, NANO_NO_KEY, cut_till_end_msg, |
| 582 | IFHELP(nano_cut_till_end_msg, NANO_CUTTILLEND_ALTKEY), |
| 583 | NANO_NO_KEY, NANO_NO_KEY, NOVIEW, do_cut_till_end); |
| 584 | #endif |
| 585 | |
David Lawrence Ramsey | db6015c | 2004-09-11 21:41:13 +0000 | [diff] [blame] | 586 | #ifndef DISABLE_JUSTIFY |
| 587 | /* Translators: try to keep this string under 10 characters long */ |
| 588 | sc_init_one(&main_list, NANO_NO_KEY, fulljstify_msg, |
David Lawrence Ramsey | 4b4b608 | 2004-11-01 22:54:40 +0000 | [diff] [blame] | 589 | IFHELP(nano_fulljustify_msg, NANO_FULLJUSTIFY_ALTKEY), |
| 590 | NANO_NO_KEY, NANO_NO_KEY, NOVIEW, do_full_justify); |
David Lawrence Ramsey | db6015c | 2004-09-11 21:41:13 +0000 | [diff] [blame] | 591 | #endif |
| 592 | |
David Lawrence Ramsey | 8381fdd | 2004-11-01 22:40:02 +0000 | [diff] [blame] | 593 | #if !defined(NANO_SMALL) && defined(HAVE_REGEX_H) |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 594 | sc_init_one(&main_list, NANO_NO_KEY, N_("Find Other Bracket"), |
| 595 | IFHELP(nano_bracket_msg, NANO_BRACKET_KEY), NANO_NO_KEY, |
| 596 | NANO_NO_KEY, VIEW, do_find_bracket); |
David Lawrence Ramsey | a593f53 | 2003-11-28 19:47:42 +0000 | [diff] [blame] | 597 | #endif |
| 598 | |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 599 | free_shortcutage(&whereis_list); |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 600 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 601 | sc_init_one(&whereis_list, NANO_HELP_KEY, get_help_msg, |
| 602 | IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY, |
| 603 | NANO_NO_KEY, VIEW, |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 604 | #ifndef DISABLE_HELP |
| 605 | do_help |
| 606 | #else |
| 607 | nano_disabled_msg |
| 608 | #endif |
| 609 | ); |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 610 | |
David Lawrence Ramsey | 8faf305 | 2003-09-04 20:25:29 +0000 | [diff] [blame] | 611 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 612 | sc_init_one(&whereis_list, NANO_CANCEL_KEY, cancel_msg, |
| 613 | IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 614 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 615 | |
David Lawrence Ramsey | 8faf305 | 2003-09-04 20:25:29 +0000 | [diff] [blame] | 616 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 617 | sc_init_one(&whereis_list, NANO_FIRSTLINE_KEY, first_line_msg, |
| 618 | IFHELP(nano_firstline_msg, NANO_NO_KEY), NANO_FIRSTLINE_FKEY, |
| 619 | NANO_NO_KEY, VIEW, do_first_line); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 620 | |
David Lawrence Ramsey | 8faf305 | 2003-09-04 20:25:29 +0000 | [diff] [blame] | 621 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 622 | sc_init_one(&whereis_list, NANO_LASTLINE_KEY, last_line_msg, |
| 623 | IFHELP(nano_lastline_msg, NANO_NO_KEY), NANO_LASTLINE_FKEY, |
| 624 | NANO_NO_KEY, VIEW, do_last_line); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 625 | |
David Lawrence Ramsey | 8faf305 | 2003-09-04 20:25:29 +0000 | [diff] [blame] | 626 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 627 | sc_init_one(&whereis_list, NANO_TOOTHERSEARCH_KEY, replace_msg, |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 628 | IFHELP(nano_replace_msg, NANO_NO_KEY), NANO_REPLACE_FKEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 629 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 630 | |
David Lawrence Ramsey | 8faf305 | 2003-09-04 20:25:29 +0000 | [diff] [blame] | 631 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 632 | sc_init_one(&whereis_list, NANO_TOGOTOLINE_KEY, go_to_line_msg, |
| 633 | IFHELP(nano_gotoline_msg, NANO_NO_KEY), NANO_GOTOLINE_FKEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 634 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | 8c2b40f | 2000-06-29 01:30:04 +0000 | [diff] [blame] | 635 | |
David Lawrence Ramsey | 8faf305 | 2003-09-04 20:25:29 +0000 | [diff] [blame] | 636 | #ifndef DISABLE_JUSTIFY |
| 637 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | db6015c | 2004-09-11 21:41:13 +0000 | [diff] [blame] | 638 | sc_init_one(&whereis_list, NANO_PARABEGIN_KEY, beg_of_par_msg, |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 639 | IFHELP(nano_parabegin_msg, NANO_PARABEGIN_ALTKEY1), NANO_NO_KEY, |
| 640 | NANO_PARABEGIN_ALTKEY2, VIEW, do_para_begin); |
David Lawrence Ramsey | 8faf305 | 2003-09-04 20:25:29 +0000 | [diff] [blame] | 641 | |
| 642 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | db6015c | 2004-09-11 21:41:13 +0000 | [diff] [blame] | 643 | sc_init_one(&whereis_list, NANO_PARAEND_KEY, end_of_par_msg, |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 644 | IFHELP(nano_paraend_msg, NANO_PARAEND_ALTKEY1), NANO_NO_KEY, |
| 645 | NANO_PARAEND_ALTKEY2, VIEW, do_para_end); |
David Lawrence Ramsey | 8faf305 | 2003-09-04 20:25:29 +0000 | [diff] [blame] | 646 | #endif |
| 647 | |
Chris Allegretta | 5f36c37 | 2001-07-16 00:48:53 +0000 | [diff] [blame] | 648 | #ifndef NANO_SMALL |
David Lawrence Ramsey | 8faf305 | 2003-09-04 20:25:29 +0000 | [diff] [blame] | 649 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 650 | sc_init_one(&whereis_list, NANO_NO_KEY, case_sens_msg, |
| 651 | IFHELP(nano_case_msg, TOGGLE_CASE_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 652 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | 658399a | 2001-06-14 02:54:22 +0000 | [diff] [blame] | 653 | |
David Lawrence Ramsey | 8faf305 | 2003-09-04 20:25:29 +0000 | [diff] [blame] | 654 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 655 | sc_init_one(&whereis_list, NANO_NO_KEY, direction_msg, |
| 656 | IFHELP(nano_reverse_msg, TOGGLE_BACKWARDS_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 657 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 658 | |
Chris Allegretta | 658399a | 2001-06-14 02:54:22 +0000 | [diff] [blame] | 659 | #ifdef HAVE_REGEX_H |
David Lawrence Ramsey | 8faf305 | 2003-09-04 20:25:29 +0000 | [diff] [blame] | 660 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 661 | sc_init_one(&whereis_list, NANO_NO_KEY, regexp_msg, |
| 662 | IFHELP(nano_regexp_msg, TOGGLE_REGEXP_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 663 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | 658399a | 2001-06-14 02:54:22 +0000 | [diff] [blame] | 664 | #endif |
Chris Allegretta | 5beed50 | 2003-01-05 20:41:21 +0000 | [diff] [blame] | 665 | |
David Lawrence Ramsey | 8faf305 | 2003-09-04 20:25:29 +0000 | [diff] [blame] | 666 | /* Translators: try to keep this string under 10 characters long */ |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 667 | sc_init_one(&whereis_list, NANO_HISTORY_KEY, history_msg, |
| 668 | IFHELP(nano_editstr_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 669 | NANO_NO_KEY, VIEW, NULL); |
David Lawrence Ramsey | 295d172 | 2005-01-01 07:43:32 +0000 | [diff] [blame] | 670 | |
| 671 | /* Translators: try to keep this string under 10 characters long */ |
| 672 | sc_init_one(&whereis_list, NANO_CUTTILLEND_KEY, cut_till_end_msg, |
| 673 | IFHELP(nano_cut_till_end_msg, NANO_CUTTILLEND_ALTKEY), |
| 674 | NANO_NO_KEY, NANO_NO_KEY, NOVIEW, do_cut_till_end); |
David Lawrence Ramsey | 3041293 | 2004-11-23 20:42:35 +0000 | [diff] [blame] | 675 | #endif /* !NANO_SMALL */ |
David Lawrence Ramsey | 02085d7 | 2004-11-07 16:04:18 +0000 | [diff] [blame] | 676 | |
| 677 | #ifndef DISABLE_JUSTIFY |
| 678 | /* Translators: try to keep this string under 10 characters long */ |
| 679 | sc_init_one(&whereis_list, NANO_FULLJUSTIFY_KEY, fulljstify_msg, |
| 680 | IFHELP(nano_fulljustify_msg, NANO_FULLJUSTIFY_ALTKEY), |
| 681 | NANO_NO_KEY, NANO_NO_KEY, NOVIEW, do_full_justify); |
| 682 | #endif |
Chris Allegretta | 5f36c37 | 2001-07-16 00:48:53 +0000 | [diff] [blame] | 683 | |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 684 | free_shortcutage(&replace_list); |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 685 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 686 | sc_init_one(&replace_list, NANO_HELP_KEY, get_help_msg, |
| 687 | IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY, |
| 688 | NANO_NO_KEY, VIEW, |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 689 | #ifndef DISABLE_HELP |
| 690 | do_help |
| 691 | #else |
| 692 | nano_disabled_msg |
| 693 | #endif |
| 694 | ); |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 695 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 696 | sc_init_one(&replace_list, NANO_CANCEL_KEY, cancel_msg, |
| 697 | IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 698 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | 5f36c37 | 2001-07-16 00:48:53 +0000 | [diff] [blame] | 699 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 700 | sc_init_one(&replace_list, NANO_FIRSTLINE_KEY, first_line_msg, |
| 701 | IFHELP(nano_firstline_msg, NANO_NO_KEY), NANO_FIRSTLINE_FKEY, |
| 702 | NANO_NO_KEY, VIEW, do_first_line); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 703 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 704 | sc_init_one(&replace_list, NANO_LASTLINE_KEY, last_line_msg, |
| 705 | IFHELP(nano_lastline_msg, NANO_NO_KEY), NANO_LASTLINE_FKEY, |
| 706 | NANO_NO_KEY, VIEW, do_last_line); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 707 | |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 708 | /* Translators: try to keep this string under 12 characters long */ |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 709 | sc_init_one(&replace_list, NANO_TOOTHERSEARCH_KEY, N_("No Replace"), |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 710 | IFHELP(nano_whereis_msg, NANO_NO_KEY), NANO_REPLACE_FKEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 711 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 712 | |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 713 | sc_init_one(&replace_list, NANO_TOGOTOLINE_KEY, go_to_line_msg, |
| 714 | IFHELP(nano_gotoline_msg, NANO_NO_KEY), NANO_GOTOLINE_FKEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 715 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | 8c2b40f | 2000-06-29 01:30:04 +0000 | [diff] [blame] | 716 | |
Chris Allegretta | 5f36c37 | 2001-07-16 00:48:53 +0000 | [diff] [blame] | 717 | #ifndef NANO_SMALL |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 718 | sc_init_one(&replace_list, NANO_NO_KEY, case_sens_msg, |
| 719 | IFHELP(nano_case_msg, TOGGLE_CASE_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 720 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | 658399a | 2001-06-14 02:54:22 +0000 | [diff] [blame] | 721 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 722 | sc_init_one(&replace_list, NANO_NO_KEY, direction_msg, |
| 723 | IFHELP(nano_reverse_msg, TOGGLE_BACKWARDS_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 724 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | 105da33 | 2000-10-31 05:10:10 +0000 | [diff] [blame] | 725 | |
Chris Allegretta | 658399a | 2001-06-14 02:54:22 +0000 | [diff] [blame] | 726 | #ifdef HAVE_REGEX_H |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 727 | sc_init_one(&replace_list, NANO_NO_KEY, regexp_msg, |
| 728 | IFHELP(nano_regexp_msg, TOGGLE_REGEXP_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 729 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | 658399a | 2001-06-14 02:54:22 +0000 | [diff] [blame] | 730 | #endif |
Chris Allegretta | 5beed50 | 2003-01-05 20:41:21 +0000 | [diff] [blame] | 731 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 732 | sc_init_one(&replace_list, NANO_HISTORY_KEY, history_msg, |
| 733 | IFHELP(nano_editstr_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 734 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 735 | #endif /* !NANO_SMALL */ |
Chris Allegretta | 5f36c37 | 2001-07-16 00:48:53 +0000 | [diff] [blame] | 736 | |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 737 | free_shortcutage(&replace_list_2); |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 738 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 739 | sc_init_one(&replace_list_2, NANO_HELP_KEY, get_help_msg, |
| 740 | IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY, |
| 741 | NANO_NO_KEY, VIEW, |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 742 | #ifndef DISABLE_HELP |
| 743 | do_help |
| 744 | #else |
| 745 | nano_disabled_msg |
| 746 | #endif |
| 747 | ); |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 748 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 749 | sc_init_one(&replace_list_2, NANO_CANCEL_KEY, cancel_msg, |
| 750 | IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 751 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | 105da33 | 2000-10-31 05:10:10 +0000 | [diff] [blame] | 752 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 753 | sc_init_one(&replace_list_2, NANO_FIRSTLINE_KEY, first_line_msg, |
| 754 | IFHELP(nano_firstline_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 755 | NANO_NO_KEY, VIEW, do_first_line); |
Chris Allegretta | 105da33 | 2000-10-31 05:10:10 +0000 | [diff] [blame] | 756 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 757 | sc_init_one(&replace_list_2, NANO_LASTLINE_KEY, last_line_msg, |
| 758 | IFHELP(nano_lastline_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 759 | NANO_NO_KEY, VIEW, do_last_line); |
Chris Allegretta | 105da33 | 2000-10-31 05:10:10 +0000 | [diff] [blame] | 760 | |
Chris Allegretta | 5beed50 | 2003-01-05 20:41:21 +0000 | [diff] [blame] | 761 | #ifndef NANO_SMALL |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 762 | sc_init_one(&replace_list_2, NANO_HISTORY_KEY, history_msg, |
| 763 | IFHELP(nano_editstr_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 764 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | 5beed50 | 2003-01-05 20:41:21 +0000 | [diff] [blame] | 765 | #endif |
| 766 | |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 767 | free_shortcutage(&gotoline_list); |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 768 | |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 769 | sc_init_one(&gotoline_list, NANO_HELP_KEY, get_help_msg, |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 770 | IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY, |
| 771 | NANO_NO_KEY, VIEW, |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 772 | #ifndef DISABLE_HELP |
| 773 | do_help |
| 774 | #else |
| 775 | nano_disabled_msg |
| 776 | #endif |
| 777 | ); |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 778 | |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 779 | sc_init_one(&gotoline_list, NANO_CANCEL_KEY, cancel_msg, |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 780 | IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 781 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 782 | |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 783 | sc_init_one(&gotoline_list, NANO_FIRSTLINE_KEY, first_line_msg, |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 784 | IFHELP(nano_firstline_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 785 | NANO_NO_KEY, VIEW, do_first_line); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 786 | |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 787 | sc_init_one(&gotoline_list, NANO_LASTLINE_KEY, last_line_msg, |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 788 | IFHELP(nano_lastline_msg, NANO_NO_KEY), NANO_NO_KEY, |
| 789 | NANO_NO_KEY, VIEW, do_last_line); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 790 | |
David Lawrence Ramsey | 4b4b608 | 2004-11-01 22:54:40 +0000 | [diff] [blame] | 791 | sc_init_one(&gotoline_list, NANO_TOOTHERWHEREIS_KEY, |
| 792 | N_("Go To Text"), IFHELP(nano_whereis_msg, NANO_NO_KEY), |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 793 | NANO_NO_KEY, NANO_NO_KEY, VIEW, NULL); |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 794 | |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 795 | #ifndef DISABLE_HELP |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 796 | free_shortcutage(&help_list); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 797 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 798 | sc_init_one(&help_list, NANO_PREVPAGE_KEY, prev_page_msg, |
| 799 | IFHELP(nano_prevpage_msg, NANO_NO_KEY), NANO_PREVPAGE_FKEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 800 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 801 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 802 | sc_init_one(&help_list, NANO_NEXTPAGE_KEY, next_page_msg, |
| 803 | IFHELP(nano_nextpage_msg, NANO_NO_KEY), NANO_NEXTPAGE_FKEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 804 | NANO_NO_KEY, VIEW, NULL); |
David Lawrence Ramsey | be26561 | 2004-05-29 20:38:08 +0000 | [diff] [blame] | 805 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 806 | sc_init_one(&help_list, NANO_PREVLINE_KEY, N_("Prev Line"), |
| 807 | IFHELP(nano_prevline_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 808 | NANO_NO_KEY, VIEW, NULL); |
David Lawrence Ramsey | be26561 | 2004-05-29 20:38:08 +0000 | [diff] [blame] | 809 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 810 | sc_init_one(&help_list, NANO_NEXTLINE_KEY, N_("Next Line"), |
| 811 | IFHELP(nano_nextline_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 812 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 813 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 814 | sc_init_one(&help_list, NANO_EXIT_KEY, exit_msg, |
| 815 | IFHELP(nano_exit_msg, NANO_NO_KEY), NANO_EXIT_FKEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 816 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 817 | #endif |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 818 | |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 819 | free_shortcutage(&writefile_list); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 820 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 821 | sc_init_one(&writefile_list, NANO_HELP_KEY, get_help_msg, |
| 822 | IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY, |
| 823 | NANO_NO_KEY, VIEW, |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 824 | #ifndef DISABLE_HELP |
| 825 | do_help |
| 826 | #else |
| 827 | nano_disabled_msg |
| 828 | #endif |
| 829 | ); |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 830 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 831 | sc_init_one(&writefile_list, NANO_CANCEL_KEY, cancel_msg, |
| 832 | IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 833 | NANO_NO_KEY, VIEW, NULL); |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 834 | |
Rocco Corsi | af5c302 | 2001-01-12 07:51:05 +0000 | [diff] [blame] | 835 | #ifndef DISABLE_BROWSER |
David Lawrence Ramsey | 32e3b88 | 2004-05-29 01:20:17 +0000 | [diff] [blame] | 836 | /* If we're using restricted mode, the file browser is disabled. |
| 837 | * It's useless since inserting files is disabled. */ |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 838 | /* Translators: try to keep this string under 16 characters long */ |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 839 | if (!ISSET(RESTRICTED)) |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 840 | sc_init_one(&writefile_list, NANO_TOFILES_KEY, to_files_msg, |
David Lawrence Ramsey | f427694 | 2003-12-24 03:33:09 +0000 | [diff] [blame] | 841 | IFHELP(nano_tofiles_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 842 | NANO_NO_KEY, NOVIEW, NULL); |
Chris Allegretta | f4b9601 | 2001-01-03 07:11:47 +0000 | [diff] [blame] | 843 | #endif |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 844 | |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 845 | #ifndef NANO_SMALL |
David Lawrence Ramsey | 32e3b88 | 2004-05-29 01:20:17 +0000 | [diff] [blame] | 846 | /* If we're using restricted mode, the DOS format, Mac format, |
| 847 | * append, prepend, and backup toggles are disabled. The first and |
| 848 | * second are useless since inserting files is disabled, the third |
| 849 | * and fourth are disabled because they allow writing to files not |
| 850 | * specified on the command line, and the fifth is useless since |
| 851 | * backups are disabled. */ |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 852 | /* Translators: try to keep this string under 16 characters long */ |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 853 | if (!ISSET(RESTRICTED)) |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 854 | sc_init_one(&writefile_list, NANO_NO_KEY, N_("DOS Format"), |
David Lawrence Ramsey | f427694 | 2003-12-24 03:33:09 +0000 | [diff] [blame] | 855 | IFHELP(nano_dos_msg, TOGGLE_DOS_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 856 | NANO_NO_KEY, NOVIEW, NULL); |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 857 | |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 858 | /* Translators: try to keep this string under 16 characters long */ |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 859 | if (!ISSET(RESTRICTED)) |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 860 | sc_init_one(&writefile_list, NANO_NO_KEY, N_("Mac Format"), |
David Lawrence Ramsey | f427694 | 2003-12-24 03:33:09 +0000 | [diff] [blame] | 861 | IFHELP(nano_mac_msg, TOGGLE_MAC_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 862 | NANO_NO_KEY, NOVIEW, NULL); |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 863 | #endif |
| 864 | |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 865 | /* Translators: try to keep this string under 16 characters long */ |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 866 | if (!ISSET(RESTRICTED)) |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 867 | sc_init_one(&writefile_list, NANO_NO_KEY, N_("Append"), |
David Lawrence Ramsey | f427694 | 2003-12-24 03:33:09 +0000 | [diff] [blame] | 868 | IFHELP(nano_append_msg, NANO_APPEND_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 869 | NANO_NO_KEY, NOVIEW, NULL); |
Chris Allegretta | cc197ef | 2001-05-29 04:21:44 +0000 | [diff] [blame] | 870 | |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 871 | /* Translators: try to keep this string under 16 characters long */ |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 872 | if (!ISSET(RESTRICTED)) |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 873 | sc_init_one(&writefile_list, NANO_NO_KEY, N_("Prepend"), |
David Lawrence Ramsey | f427694 | 2003-12-24 03:33:09 +0000 | [diff] [blame] | 874 | IFHELP(nano_prepend_msg, NANO_PREPEND_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 875 | NANO_NO_KEY, NOVIEW, NULL); |
Chris Allegretta | 0e9b7aa | 2002-04-16 03:15:47 +0000 | [diff] [blame] | 876 | |
David Lawrence Ramsey | 5db0cdc | 2002-06-28 22:45:14 +0000 | [diff] [blame] | 877 | #ifndef NANO_SMALL |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 878 | /* Translators: try to keep this string under 16 characters long */ |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 879 | if (!ISSET(RESTRICTED)) |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 880 | sc_init_one(&writefile_list, NANO_NO_KEY, N_("Backup File"), |
David Lawrence Ramsey | f427694 | 2003-12-24 03:33:09 +0000 | [diff] [blame] | 881 | IFHELP(nano_backup_msg, TOGGLE_BACKUP_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 882 | NANO_NO_KEY, NOVIEW, NULL); |
David Lawrence Ramsey | 5db0cdc | 2002-06-28 22:45:14 +0000 | [diff] [blame] | 883 | #endif |
| 884 | |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 885 | free_shortcutage(&insertfile_list); |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 886 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 887 | sc_init_one(&insertfile_list, NANO_HELP_KEY, get_help_msg, |
| 888 | IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY, |
| 889 | NANO_NO_KEY, VIEW, |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 890 | #ifndef DISABLE_HELP |
| 891 | do_help |
| 892 | #else |
| 893 | nano_disabled_msg |
| 894 | #endif |
| 895 | ); |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 896 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 897 | sc_init_one(&insertfile_list, NANO_CANCEL_KEY, cancel_msg, |
David Lawrence Ramsey | f427694 | 2003-12-24 03:33:09 +0000 | [diff] [blame] | 898 | IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 899 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 900 | |
Chris Allegretta | cc197ef | 2001-05-29 04:21:44 +0000 | [diff] [blame] | 901 | #ifndef DISABLE_BROWSER |
David Lawrence Ramsey | 32e3b88 | 2004-05-29 01:20:17 +0000 | [diff] [blame] | 902 | /* If we're using restricted mode, the file browser is disabled. |
| 903 | * It's useless since inserting files is disabled. */ |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 904 | if (!ISSET(RESTRICTED)) |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 905 | sc_init_one(&insertfile_list, NANO_TOFILES_KEY, to_files_msg, |
David Lawrence Ramsey | f427694 | 2003-12-24 03:33:09 +0000 | [diff] [blame] | 906 | IFHELP(nano_tofiles_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 907 | NANO_NO_KEY, NOVIEW, NULL); |
Chris Allegretta | cc197ef | 2001-05-29 04:21:44 +0000 | [diff] [blame] | 908 | #endif |
David Lawrence Ramsey | a593f53 | 2003-11-28 19:47:42 +0000 | [diff] [blame] | 909 | |
Chris Allegretta | 52c5a6e | 2002-03-21 05:07:28 +0000 | [diff] [blame] | 910 | #ifndef NANO_SMALL |
David Lawrence Ramsey | 32e3b88 | 2004-05-29 01:20:17 +0000 | [diff] [blame] | 911 | /* If we're using restricted mode, command execution is disabled. |
| 912 | * It's useless since inserting files is disabled. */ |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 913 | /* Translators: try to keep this string under 22 characters long */ |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 914 | if (!ISSET(RESTRICTED)) |
David Lawrence Ramsey | 4b4b608 | 2004-11-01 22:54:40 +0000 | [diff] [blame] | 915 | sc_init_one(&insertfile_list, NANO_TOOTHERINSERT_KEY, |
| 916 | N_("Execute Command"), IFHELP(nano_execute_msg, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 917 | NANO_NO_KEY), NANO_NO_KEY, NANO_NO_KEY, NOVIEW, NULL); |
David Lawrence Ramsey | a593f53 | 2003-11-28 19:47:42 +0000 | [diff] [blame] | 918 | |
Chris Allegretta | f7c6811 | 2002-09-03 22:58:40 +0000 | [diff] [blame] | 919 | #ifdef ENABLE_MULTIBUFFER |
David Lawrence Ramsey | 32e3b88 | 2004-05-29 01:20:17 +0000 | [diff] [blame] | 920 | /* If we're using restricted mode, the multibuffer toggle is |
| 921 | * disabled. It's useless since inserting files is disabled. */ |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 922 | /* Translators: try to keep this string under 22 characters long */ |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 923 | if (!ISSET(RESTRICTED)) |
David Lawrence Ramsey | 04a8d1c | 2004-09-28 22:14:58 +0000 | [diff] [blame] | 924 | sc_init_one(&insertfile_list, NANO_NO_KEY, new_buffer_msg, |
David Lawrence Ramsey | 4b4b608 | 2004-11-01 22:54:40 +0000 | [diff] [blame] | 925 | IFHELP(nano_multibuffer_msg, TOGGLE_MULTIBUFFER_KEY), |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 926 | NANO_NO_KEY, NANO_NO_KEY, NOVIEW, NULL); |
Chris Allegretta | f7c6811 | 2002-09-03 22:58:40 +0000 | [diff] [blame] | 927 | #endif |
David Lawrence Ramsey | e21adfa | 2002-09-13 18:14:04 +0000 | [diff] [blame] | 928 | #endif |
Chris Allegretta | cc197ef | 2001-05-29 04:21:44 +0000 | [diff] [blame] | 929 | |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 930 | #ifndef DISABLE_SPELLER |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 931 | free_shortcutage(&spell_list); |
Chris Allegretta | 7162e3d | 2002-04-06 05:02:14 +0000 | [diff] [blame] | 932 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 933 | sc_init_one(&spell_list, NANO_HELP_KEY, get_help_msg, |
| 934 | IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY, |
| 935 | NANO_NO_KEY, VIEW, |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 936 | #ifndef DISABLE_HELP |
| 937 | do_help |
| 938 | #else |
| 939 | nano_disabled_msg |
| 940 | #endif |
| 941 | ); |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 942 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 943 | sc_init_one(&spell_list, NANO_CANCEL_KEY, cancel_msg, |
| 944 | IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 945 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 946 | #endif |
Chris Allegretta | cc197ef | 2001-05-29 04:21:44 +0000 | [diff] [blame] | 947 | |
Chris Allegretta | 52c5a6e | 2002-03-21 05:07:28 +0000 | [diff] [blame] | 948 | #ifndef NANO_SMALL |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 949 | free_shortcutage(&extcmd_list); |
Chris Allegretta | 7162e3d | 2002-04-06 05:02:14 +0000 | [diff] [blame] | 950 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 951 | sc_init_one(&extcmd_list, NANO_HELP_KEY, get_help_msg, |
| 952 | IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY, |
| 953 | NANO_NO_KEY, VIEW, |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 954 | #ifndef DISABLE_HELP |
| 955 | do_help |
| 956 | #else |
| 957 | nano_disabled_msg |
| 958 | #endif |
| 959 | ); |
Chris Allegretta | 52c5a6e | 2002-03-21 05:07:28 +0000 | [diff] [blame] | 960 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 961 | sc_init_one(&extcmd_list, NANO_CANCEL_KEY, cancel_msg, |
| 962 | IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 963 | NANO_NO_KEY, VIEW, NULL); |
David Lawrence Ramsey | 04a8d1c | 2004-09-28 22:14:58 +0000 | [diff] [blame] | 964 | |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 965 | sc_init_one(&extcmd_list, NANO_TOOTHERINSERT_KEY, N_("Insert File"), |
| 966 | IFHELP(nano_insert_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 967 | NANO_NO_KEY, VIEW, NULL); |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 968 | |
David Lawrence Ramsey | 47e82b1 | 2004-09-28 22:21:46 +0000 | [diff] [blame] | 969 | #ifdef ENABLE_MULTIBUFFER |
David Lawrence Ramsey | 04a8d1c | 2004-09-28 22:14:58 +0000 | [diff] [blame] | 970 | sc_init_one(&extcmd_list, NANO_NO_KEY, new_buffer_msg, |
David Lawrence Ramsey | 4b4b608 | 2004-11-01 22:54:40 +0000 | [diff] [blame] | 971 | IFHELP(nano_multibuffer_msg, TOGGLE_MULTIBUFFER_KEY), |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 972 | NANO_NO_KEY, NANO_NO_KEY, NOVIEW, NULL); |
Chris Allegretta | 52c5a6e | 2002-03-21 05:07:28 +0000 | [diff] [blame] | 973 | #endif |
David Lawrence Ramsey | 47e82b1 | 2004-09-28 22:21:46 +0000 | [diff] [blame] | 974 | #endif |
Chris Allegretta | a2ea193 | 2000-06-06 05:53:49 +0000 | [diff] [blame] | 975 | |
Rocco Corsi | af5c302 | 2001-01-12 07:51:05 +0000 | [diff] [blame] | 976 | #ifndef DISABLE_BROWSER |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 977 | free_shortcutage(&browser_list); |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 978 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 979 | sc_init_one(&browser_list, NANO_HELP_KEY, get_help_msg, |
| 980 | IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY, |
| 981 | NANO_NO_KEY, VIEW, |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 982 | #ifndef DISABLE_HELP |
| 983 | do_help |
| 984 | #else |
| 985 | nano_disabled_msg |
| 986 | #endif |
| 987 | ); |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 988 | |
David Lawrence Ramsey | 8037fe0 | 2004-07-23 12:30:40 +0000 | [diff] [blame] | 989 | sc_init_one(&browser_list, NANO_EXIT_KEY, exit_msg, |
David Lawrence Ramsey | c41d428 | 2004-07-23 12:51:40 +0000 | [diff] [blame] | 990 | IFHELP(nano_exitbrowser_msg, NANO_NO_KEY), NANO_EXIT_FKEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 991 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | b3655b4 | 2001-10-22 03:15:31 +0000 | [diff] [blame] | 992 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 993 | sc_init_one(&browser_list, NANO_PREVPAGE_KEY, prev_page_msg, |
| 994 | IFHELP(nano_prevpage_msg, NANO_NO_KEY), NANO_PREVPAGE_FKEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 995 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | f4b9601 | 2001-01-03 07:11:47 +0000 | [diff] [blame] | 996 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 997 | sc_init_one(&browser_list, NANO_NEXTPAGE_KEY, next_page_msg, |
| 998 | IFHELP(nano_nextpage_msg, NANO_NO_KEY), NANO_NEXTPAGE_FKEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 999 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | f4b9601 | 2001-01-03 07:11:47 +0000 | [diff] [blame] | 1000 | |
Jordi Mallach | f9390af | 2003-08-05 19:31:12 +0000 | [diff] [blame] | 1001 | /* Translators: try to keep this string under 22 characters long */ |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 1002 | sc_init_one(&browser_list, NANO_GOTOLINE_KEY, N_("Go To Dir"), |
David Lawrence Ramsey | 4b4b608 | 2004-11-01 22:54:40 +0000 | [diff] [blame] | 1003 | IFHELP(nano_gotodir_msg, NANO_GOTOLINE_ALTKEY), |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 1004 | NANO_GOTOLINE_FKEY, NANO_NO_KEY, VIEW, NULL); |
Rocco Corsi | 12f294c | 2001-04-14 06:50:24 +0000 | [diff] [blame] | 1005 | |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 1006 | free_shortcutage(&gotodir_list); |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1007 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 1008 | sc_init_one(&gotodir_list, NANO_HELP_KEY, get_help_msg, |
| 1009 | IFHELP(nano_help_msg, NANO_NO_KEY), NANO_HELP_FKEY, |
| 1010 | NANO_NO_KEY, VIEW, |
David Lawrence Ramsey | d893fa9 | 2004-04-30 04:49:02 +0000 | [diff] [blame] | 1011 | #ifndef DISABLE_HELP |
| 1012 | do_help |
| 1013 | #else |
| 1014 | nano_disabled_msg |
| 1015 | #endif |
| 1016 | ); |
Chris Allegretta | f4b9601 | 2001-01-03 07:11:47 +0000 | [diff] [blame] | 1017 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 1018 | sc_init_one(&gotodir_list, NANO_CANCEL_KEY, cancel_msg, |
| 1019 | IFHELP(nano_cancel_msg, NANO_NO_KEY), NANO_NO_KEY, |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 1020 | NANO_NO_KEY, VIEW, NULL); |
Chris Allegretta | f4b9601 | 2001-01-03 07:11:47 +0000 | [diff] [blame] | 1021 | #endif |
| 1022 | |
Chris Allegretta | a8c2257 | 2002-02-15 19:17:02 +0000 | [diff] [blame] | 1023 | currshortcut = main_list; |
David Lawrence Ramsey | 35e9713 | 2005-01-08 06:04:19 +0000 | [diff] [blame^] | 1024 | |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1025 | #ifndef NANO_SMALL |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 1026 | toggle_init(); |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1027 | #endif |
Chris Allegretta | dab017e | 2002-04-23 10:56:06 +0000 | [diff] [blame] | 1028 | } |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1029 | |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 1030 | /* Deallocate the given shortcut. */ |
| 1031 | void free_shortcutage(shortcut **shortcutage) |
| 1032 | { |
| 1033 | assert(shortcutage != NULL); |
| 1034 | while (*shortcutage != NULL) { |
| 1035 | shortcut *ps = *shortcutage; |
| 1036 | *shortcutage = (*shortcutage)->next; |
| 1037 | free(ps); |
| 1038 | } |
| 1039 | } |
| 1040 | |
| 1041 | #ifndef NANO_SMALL |
| 1042 | /* Create one new toggle structure, at the end of the toggles linked |
| 1043 | * list. */ |
| 1044 | void toggle_init_one(int val, const char *desc, long flag) |
| 1045 | { |
| 1046 | toggle *u; |
| 1047 | |
| 1048 | if (toggles == NULL) { |
David Lawrence Ramsey | 94b975c | 2004-07-20 12:57:34 +0000 | [diff] [blame] | 1049 | toggles = (toggle *)nmalloc(sizeof(toggle)); |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 1050 | u = toggles; |
| 1051 | } else { |
| 1052 | for (u = toggles; u->next != NULL; u = u->next) |
| 1053 | ; |
David Lawrence Ramsey | 94b975c | 2004-07-20 12:57:34 +0000 | [diff] [blame] | 1054 | u->next = (toggle *)nmalloc(sizeof(toggle)); |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 1055 | u = u->next; |
| 1056 | } |
| 1057 | |
| 1058 | u->val = val; |
| 1059 | u->desc = _(desc); |
| 1060 | u->flag = flag; |
| 1061 | u->next = NULL; |
| 1062 | } |
| 1063 | |
| 1064 | void toggle_init(void) |
| 1065 | { |
| 1066 | /* There is no need to reinitialize the toggles. They can't |
| 1067 | * change. */ |
| 1068 | if (toggles != NULL) |
| 1069 | return; |
| 1070 | |
| 1071 | toggle_init_one(TOGGLE_NOHELP_KEY, N_("Help mode"), NO_HELP); |
| 1072 | #ifdef ENABLE_MULTIBUFFER |
| 1073 | /* If we're using restricted mode, the multibuffer toggle is |
| 1074 | * disabled. It's useless since inserting files is disabled. */ |
| 1075 | if (!ISSET(RESTRICTED)) |
| 1076 | toggle_init_one(TOGGLE_MULTIBUFFER_KEY, N_("Multiple file buffers"), |
| 1077 | MULTIBUFFER); |
| 1078 | #endif |
| 1079 | toggle_init_one(TOGGLE_CONST_KEY, N_("Constant cursor position"), |
| 1080 | CONSTUPDATE); |
| 1081 | toggle_init_one(TOGGLE_AUTOINDENT_KEY, N_("Auto indent"), AUTOINDENT); |
| 1082 | #ifndef DISABLE_WRAPPING |
| 1083 | toggle_init_one(TOGGLE_WRAP_KEY, N_("Auto line wrap"), NO_WRAP); |
| 1084 | #endif |
| 1085 | toggle_init_one(TOGGLE_CUTTOEND_KEY, N_("Cut to end"), CUT_TO_END); |
| 1086 | /* If we're using restricted mode, the suspend toggle is disabled. |
| 1087 | * It's useless since suspending is disabled. */ |
| 1088 | if (!ISSET(RESTRICTED)) |
| 1089 | toggle_init_one(TOGGLE_SUSPEND_KEY, N_("Suspend"), SUSPEND); |
| 1090 | #ifndef DISABLE_MOUSE |
| 1091 | toggle_init_one(TOGGLE_MOUSE_KEY, N_("Mouse support"), USE_MOUSE); |
| 1092 | #endif |
David Lawrence Ramsey | 7483571 | 2004-12-04 17:41:52 +0000 | [diff] [blame] | 1093 | /* If we're using restricted mode, the DOS/Mac conversion toggle is |
| 1094 | * disabled. It's useless since inserting files is disabled. */ |
| 1095 | if (!ISSET(RESTRICTED)) |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 1096 | toggle_init_one(TOGGLE_NOCONVERT_KEY, |
| 1097 | N_("No conversion from DOS/Mac format"), NO_CONVERT); |
David Lawrence Ramsey | 7483571 | 2004-12-04 17:41:52 +0000 | [diff] [blame] | 1098 | /* If we're using restricted mode, the backup toggle is disabled. |
| 1099 | * It's useless since backups are disabled. */ |
| 1100 | if (!ISSET(RESTRICTED)) |
David Lawrence Ramsey | fb8bf40 | 2004-07-13 17:43:08 +0000 | [diff] [blame] | 1101 | toggle_init_one(TOGGLE_BACKUP_KEY, N_("Backup files"), BACKUP_FILE); |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 1102 | toggle_init_one(TOGGLE_SMOOTH_KEY, N_("Smooth scrolling"), SMOOTHSCROLL); |
| 1103 | toggle_init_one(TOGGLE_SMARTHOME_KEY, N_("Smart home key"), SMART_HOME); |
| 1104 | #ifdef ENABLE_COLOR |
| 1105 | toggle_init_one(TOGGLE_SYNTAX_KEY, N_("Color syntax highlighting"), |
| 1106 | COLOR_SYNTAX); |
| 1107 | #endif |
| 1108 | #ifdef ENABLE_NANORC |
| 1109 | toggle_init_one(TOGGLE_WHITESPACE_KEY, N_("Whitespace display"), |
| 1110 | WHITESPACE_DISPLAY); |
| 1111 | #endif |
| 1112 | } |
| 1113 | |
| 1114 | #ifdef DEBUG |
| 1115 | /* Deallocate all of the toggles. */ |
| 1116 | void free_toggles(void) |
| 1117 | { |
| 1118 | while (toggles != NULL) { |
| 1119 | toggle *pt = toggles; /* Think "previous toggle". */ |
| 1120 | |
| 1121 | toggles = toggles->next; |
| 1122 | free(pt); |
| 1123 | } |
| 1124 | } |
| 1125 | #endif |
| 1126 | #endif /* !NANO_SMALL */ |
| 1127 | |
Chris Allegretta | 6232d66 | 2002-05-12 19:52:15 +0000 | [diff] [blame] | 1128 | /* This function is called just before calling exit(). Practically, the |
| 1129 | * only effect is to cause a segmentation fault if the various data |
| 1130 | * structures got bolloxed earlier. Thus, we don't bother having this |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 1131 | * function unless debugging is turned on. */ |
Chris Allegretta | 6232d66 | 2002-05-12 19:52:15 +0000 | [diff] [blame] | 1132 | #ifdef DEBUG |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 1133 | /* Added by SPK for memory cleanup; gracefully return our malloc()s. */ |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 1134 | void thanks_for_all_the_fish(void) |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1135 | { |
David Lawrence Ramsey | 576bf33 | 2004-07-12 03:10:30 +0000 | [diff] [blame] | 1136 | delwin(topwin); |
| 1137 | delwin(edit); |
| 1138 | delwin(bottomwin); |
| 1139 | |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 1140 | #ifndef DISABLE_JUSTIFY |
| 1141 | if (quotestr != NULL) |
| 1142 | free(quotestr); |
David Lawrence Ramsey | 819c7f0 | 2004-07-30 03:54:34 +0000 | [diff] [blame] | 1143 | #ifdef HAVE_REGEX_H |
| 1144 | regfree("ereg); |
| 1145 | free(quoteerr); |
| 1146 | #endif |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 1147 | #endif |
David Lawrence Ramsey | 04e42a6 | 2004-02-28 16:24:31 +0000 | [diff] [blame] | 1148 | #ifndef NANO_SMALL |
| 1149 | if (backup_dir != NULL) |
| 1150 | free(backup_dir); |
| 1151 | #endif |
Chris Allegretta | 2598c66 | 2002-03-28 01:59:34 +0000 | [diff] [blame] | 1152 | #ifndef DISABLE_OPERATINGDIR |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1153 | if (operating_dir != NULL) |
| 1154 | free(operating_dir); |
| 1155 | if (full_operating_dir != NULL) |
| 1156 | free(full_operating_dir); |
| 1157 | #endif |
| 1158 | if (last_search != NULL) |
| 1159 | free(last_search); |
| 1160 | if (last_replace != NULL) |
| 1161 | free(last_replace); |
| 1162 | if (hblank != NULL) |
| 1163 | free(hblank); |
| 1164 | #ifndef DISABLE_SPELLER |
| 1165 | if (alt_speller != NULL) |
| 1166 | free(alt_speller); |
| 1167 | #endif |
David Lawrence Ramsey | ad40fdb | 2002-09-06 20:35:28 +0000 | [diff] [blame] | 1168 | #ifndef DISABLE_HELP |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1169 | if (help_text != NULL) |
| 1170 | free(help_text); |
David Lawrence Ramsey | ad40fdb | 2002-09-06 20:35:28 +0000 | [diff] [blame] | 1171 | #endif |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1172 | if (filename != NULL) |
| 1173 | free(filename); |
| 1174 | if (answer != NULL) |
| 1175 | free(answer); |
| 1176 | if (cutbuffer != NULL) |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 1177 | free_filestruct(cutbuffer); |
David Lawrence Ramsey | 93c8405 | 2004-11-23 04:08:28 +0000 | [diff] [blame] | 1178 | #ifndef DISABLE_JUSTIFY |
| 1179 | if (jusbuffer != NULL) |
| 1180 | free_filestruct(jusbuffer); |
| 1181 | #endif |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1182 | free_shortcutage(&main_list); |
| 1183 | free_shortcutage(&whereis_list); |
| 1184 | free_shortcutage(&replace_list); |
| 1185 | free_shortcutage(&replace_list_2); |
David Lawrence Ramsey | e5d8f32 | 2004-09-30 22:07:21 +0000 | [diff] [blame] | 1186 | free_shortcutage(&gotoline_list); |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1187 | free_shortcutage(&writefile_list); |
| 1188 | free_shortcutage(&insertfile_list); |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 1189 | #ifndef DISABLE_HELP |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 1190 | free_shortcutage(&help_list); |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 1191 | #endif |
| 1192 | #ifndef DISABLE_SPELLER |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1193 | free_shortcutage(&spell_list); |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 1194 | #endif |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 1195 | #ifndef NANO_SMALL |
| 1196 | free_shortcutage(&extcmd_list); |
| 1197 | #endif |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1198 | #ifndef DISABLE_BROWSER |
| 1199 | free_shortcutage(&browser_list); |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 1200 | free_shortcutage(&gotodir_list); |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1201 | #endif |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1202 | |
| 1203 | #ifndef NANO_SMALL |
| 1204 | free_toggles(); |
| 1205 | #endif |
| 1206 | |
| 1207 | #ifdef ENABLE_MULTIBUFFER |
Chris Allegretta | f2387fb | 2002-04-10 02:31:20 +0000 | [diff] [blame] | 1208 | if (open_files != NULL) { |
Chris Allegretta | 6232d66 | 2002-05-12 19:52:15 +0000 | [diff] [blame] | 1209 | /* We free the memory associated with each open file. */ |
Chris Allegretta | ce452fb | 2003-02-03 02:56:44 +0000 | [diff] [blame] | 1210 | while (open_files->prev != NULL) |
| 1211 | open_files = open_files->prev; |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 1212 | free_openfilestruct(open_files); |
Chris Allegretta | ce452fb | 2003-02-03 02:56:44 +0000 | [diff] [blame] | 1213 | } |
Chris Allegretta | f2387fb | 2002-04-10 02:31:20 +0000 | [diff] [blame] | 1214 | #else |
Chris Allegretta | ce452fb | 2003-02-03 02:56:44 +0000 | [diff] [blame] | 1215 | free_filestruct(fileage); |
Chris Allegretta | f2387fb | 2002-04-10 02:31:20 +0000 | [diff] [blame] | 1216 | #endif |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 1217 | |
| 1218 | #ifdef ENABLE_COLOR |
| 1219 | free(syntaxstr); |
| 1220 | while (syntaxes != NULL) { |
| 1221 | syntaxtype *bill = syntaxes; |
| 1222 | |
| 1223 | free(syntaxes->desc); |
| 1224 | while (syntaxes->extensions != NULL) { |
| 1225 | exttype *bob = syntaxes->extensions; |
| 1226 | |
| 1227 | syntaxes->extensions = bob->next; |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 1228 | regfree(&bob->val); |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 1229 | free(bob); |
| 1230 | } |
| 1231 | while (syntaxes->color != NULL) { |
| 1232 | colortype *bob = syntaxes->color; |
| 1233 | |
| 1234 | syntaxes->color = bob->next; |
Chris Allegretta | 7662c86 | 2003-01-13 01:35:15 +0000 | [diff] [blame] | 1235 | regfree(&bob->start); |
| 1236 | if (bob->end != NULL) |
Chris Allegretta | ce452fb | 2003-02-03 02:56:44 +0000 | [diff] [blame] | 1237 | regfree(bob->end); |
| 1238 | free(bob->end); |
Chris Allegretta | 6df90f5 | 2002-07-19 01:08:59 +0000 | [diff] [blame] | 1239 | free(bob); |
| 1240 | } |
| 1241 | syntaxes = syntaxes->next; |
| 1242 | free(bill); |
| 1243 | } |
| 1244 | #endif /* ENABLE_COLOR */ |
Chris Allegretta | 5beed50 | 2003-01-05 20:41:21 +0000 | [diff] [blame] | 1245 | #ifndef NANO_SMALL |
| 1246 | /* free history lists */ |
| 1247 | free_history(&search_history); |
| 1248 | free_history(&replace_history); |
| 1249 | #endif |
David Lawrence Ramsey | a27bd65 | 2004-08-17 05:23:38 +0000 | [diff] [blame] | 1250 | #ifdef ENABLE_NANORC |
| 1251 | free(homedir); |
| 1252 | #endif |
Chris Allegretta | f5de33a | 2002-02-27 04:14:16 +0000 | [diff] [blame] | 1253 | } |
Chris Allegretta | 6232d66 | 2002-05-12 19:52:15 +0000 | [diff] [blame] | 1254 | #endif /* DEBUG */ |