certain col values. (9) [FIXED]
- edit_refresh() and update_line() do not handle selecting text when the
cursor is beyond COLS (10) [FIXED]
+- no way to do a replace with the empty string (11). [FIXED, yay!]
- Moving to the end of a line when close to a multiple of COLS and at
least COLS * 2 does not make the screen jump early like it would for
if we were around COLS (bugs in edit_refresh, update_line) (13)
- Marked cutting sometimes leaves a newline in the file unintelligently,
such as when all of a line is selected but the mark doesn't proceed to
the new line. (8) { Is this an issue? compare to pico 3.5 }
-- no way to do a replace with the empty string (11).
- Spelling support is not elegant like pico's integration of the 'spell'
program. Nano only uses ispell (for now) (12).
- In replace, there is no way to accept the default replace string. (27)
CVS Code -
+- Ran source through indent -kr again. Make everything pretty.
+- Added "replace with null" option. ^N in replace. New alias
+ NANO_NULL_KEY, and code in do_replace to check for it.
- global.c
toggle_init()
- Added #ifdef around toggle_regex_msg to get rid of compiler
filebot = top;
}
}
- if (top->lineno < edittop->lineno)
+ if (top->lineno < edittop->lineno)
edit_update(top, CENTER);
}
#endif
}
/* Must let cutbuffer get blown away first before we do this... */
- if (fileptr == filebot && !ISSET(MARK_ISSET))
+ if (fileptr == filebot && !ISSET(MARK_ISSET))
return 0;
#ifndef NANO_SMALL
if (ISSET(CUT_TO_END) && !ISSET(MARK_ISSET)) {
- if (current_x == strlen(current->data))
- {
+ if (current_x == strlen(current->data)) {
do_delete();
SET(KEEP_CUTBUFFER);
marked_cut = 2;
return 1;
- }
- else
- {
+ } else {
SET(MARK_ISSET);
SET(KEEP_CUTBUFFER);
tmp = fileptr;
fileage = fileptr;
add_to_cutbuffer(fileptr->prev);
- totsize--; /* get the newline */
+ totsize--; /* get the newline */
totlines--;
fileptr->prev = NULL;
current = fileptr;
(fileptr->next)->prev = fileptr->prev;
current = fileptr->next;
totlines--;
- totsize--; /* get the newline */
- } /* No longer an else here, because we never get here anymore...
- No need to cut the magic line, as it's empty */
-
+ totsize--; /* get the newline */
+ }
+ /* No longer an else here, because we never get here anymore...
+ No need to cut the magic line, as it's empty */
add_to_cutbuffer(fileptr);
}
i = editbot->lineno;
renumber(newbuf);
- if (i < newend->lineno)
+ if (i < newend->lineno)
edit_update(fileptr, CENTER);
dump_buffer_reverse(fileptr);
if (ISSET(TEMP_OPT)) {
UNSET(TEMP_OPT);
return do_writeout(1);
- }
+ }
statusbar(_("Could not open file for writing: %s"),
strerror(errno));
return -1;
dump_buffer(fileage);
while (fileptr != NULL && fileptr->next != NULL) {
/* Next line is so we discount the "magic line" */
- if(filebot == fileptr && fileptr->data[0] == '\0') break;
+ if (filebot == fileptr && fileptr->data[0] == '\0')
+ break;
size = write(fd, fileptr->data, strlen(fileptr->data));
if (size == -1) {
strncpy(answer, filename, 132);
if ((exiting) && (ISSET(TEMP_OPT))) {
- if (filename[0])
- {
+ if (filename[0]) {
i = write_file(answer, 0);
display_main_list();
return i;
- }
- else
- {
+ } else {
UNSET(TEMP_OPT);
do_exit();
/* Regular expressions */
#ifdef HAVE_REGEX_H
-regex_t search_regexp; /* Global to store compiled search regexp */
-regmatch_t regmatches[10]; /* Match positions for parenthetical
- subexpressions, max of 10 */
+regex_t search_regexp; /* Global to store compiled search regexp */
+regmatch_t regmatches[10]; /* Match positions for parenthetical
+ subexpressions, max of 10 */
#endif
/* Initialize a struct *without* our lovely braces =( */
*toggle_nohelp_msg, *toggle_picomode_msg, *toggle_mouse_msg,
*toggle_cuttoend_msg, *toggle_wrap_msg;
#ifdef HAVE_REGEX_H
- char *toggle_regexp_msg;
+ char *toggle_regexp_msg;
#endif
toggle_const_msg = _("Constant cursor position");
toggle_mouse_msg = _("Mouse support");
toggle_cuttoend_msg = _("Cut to end");
#ifdef HAVE_REGEX_H
- toggle_regexp_msg = _("Regular expressions");
+ toggle_regexp_msg = _("Regular expressions");
#endif
toggle_wrap_msg = _("Auto wrap");
- toggle_init_one(&toggles[0], TOGGLE_CONST_KEY, toggle_const_msg,
- CONSTUPDATE);
- toggle_init_one(&toggles[1], TOGGLE_AUTOINDENT_KEY, toggle_autoindent_msg,
- AUTOINDENT);
- toggle_init_one(&toggles[2], TOGGLE_SUSPEND_KEY, toggle_suspend_msg,
- SUSPEND);
- toggle_init_one(&toggles[3], TOGGLE_NOHELP_KEY, toggle_nohelp_msg,
- NO_HELP);
- toggle_init_one(&toggles[4], TOGGLE_PICOMODE_KEY, toggle_picomode_msg,
- PICO_MSGS);
- toggle_init_one(&toggles[5], TOGGLE_WRAP_KEY, toggle_wrap_msg,
- NO_WRAP);
- toggle_init_one(&toggles[6], TOGGLE_MOUSE_KEY, toggle_mouse_msg,
- USE_MOUSE);
- toggle_init_one(&toggles[7], TOGGLE_CUTTOEND_KEY, toggle_cuttoend_msg,
- CUT_TO_END);
+ toggle_init_one(&toggles[0], TOGGLE_CONST_KEY, toggle_const_msg,
+ CONSTUPDATE);
+ toggle_init_one(&toggles[1], TOGGLE_AUTOINDENT_KEY,
+ toggle_autoindent_msg, AUTOINDENT);
+ toggle_init_one(&toggles[2], TOGGLE_SUSPEND_KEY, toggle_suspend_msg,
+ SUSPEND);
+ toggle_init_one(&toggles[3], TOGGLE_NOHELP_KEY, toggle_nohelp_msg,
+ NO_HELP);
+ toggle_init_one(&toggles[4], TOGGLE_PICOMODE_KEY, toggle_picomode_msg,
+ PICO_MSGS);
+ toggle_init_one(&toggles[5], TOGGLE_WRAP_KEY, toggle_wrap_msg,
+ NO_WRAP);
+ toggle_init_one(&toggles[6], TOGGLE_MOUSE_KEY, toggle_mouse_msg,
+ USE_MOUSE);
+ toggle_init_one(&toggles[7], TOGGLE_CUTTOEND_KEY, toggle_cuttoend_msg,
+ CUT_TO_END);
#ifdef HAVE_REGEX_H
- toggle_init_one(&toggles[8], TOGGLE_REGEXP_KEY, toggle_regexp_msg,
- USE_REGEXP);
+ toggle_init_one(&toggles[8], TOGGLE_REGEXP_KEY, toggle_regexp_msg,
+ USE_REGEXP);
#endif
#endif
}
"", *nano_mark_msg = "", *nano_delete_msg =
"", *nano_backspace_msg = "", *nano_tab_msg =
"", *nano_enter_msg = "", *nano_case_msg =
- "", *nano_cancel_msg = "";
+ "", *nano_cancel_msg = "", *nano_null_msg = "";
#ifndef NANO_SMALL
nano_help_msg = _("Invoke the help menu");
nano_case_msg =
_("Make the current search or replace case (in)sensitive");
nano_cancel_msg = _("Cancel the current function");
+ nano_null_msg = _("Use the null string, \"\"");
#endif
if (ISSET(PICO_MSGS))
if (ISSET(PICO_MSGS))
sc_init_one(&main_list[3], NANO_JUSTIFY_KEY, _("Justify"),
- nano_justify_msg, 0, NANO_JUSTIFY_FKEY, 0,
+ nano_justify_msg, 0, NANO_JUSTIFY_FKEY, 0,
NOVIEW, do_justify);
else
sc_init_one(&main_list[3], NANO_REPLACE_KEY, _("Replace"),
NANO_ALT_R, NANO_REPLACE_FKEY, 0, NOVIEW, do_replace);
else
sc_init_one(&main_list[23], NANO_JUSTIFY_KEY, _("Justify"),
- nano_justify_msg, 0, NANO_JUSTIFY_FKEY, 0,
+ nano_justify_msg, 0, NANO_JUSTIFY_FKEY, 0,
NOVIEW, do_justify);
sc_init_one(&main_list[24], NANO_ENTER_KEY, _("Enter"),
sc_init_one(&whereis_list[3], NANO_OTHERSEARCH_KEY, _("Replace"),
nano_replace_msg, 0, 0, 0, VIEW, do_replace);
- sc_init_one(&whereis_list[4], NANO_FROMSEARCHTOGOTO_KEY, _("Goto Line"),
- nano_goto_msg, 0, 0, 0, VIEW, do_gotoline_void);
+ sc_init_one(&whereis_list[4], NANO_FROMSEARCHTOGOTO_KEY,
+ _("Goto Line"), nano_goto_msg, 0, 0, 0, VIEW,
+ do_gotoline_void);
sc_init_one(&whereis_list[5], NANO_CANCEL_KEY, _("Cancel"),
nano_cancel_msg, 0, 0, 0, VIEW, 0);
sc_init_one(&replace_list[3], NANO_OTHERSEARCH_KEY, _("No Replace"),
nano_whereis_msg, 0, 0, 0, VIEW, do_search);
- sc_init_one(&replace_list[4], NANO_FROMSEARCHTOGOTO_KEY, _("Goto Line"),
- nano_goto_msg, 0, 0, 0, VIEW, do_gotoline_void);
+ sc_init_one(&replace_list[4], NANO_FROMSEARCHTOGOTO_KEY,
+ _("Goto Line"), nano_goto_msg, 0, 0, 0, VIEW,
+ do_gotoline_void);
- sc_init_one(&replace_list[5], NANO_CANCEL_KEY, _("Cancel"),
+ sc_init_one(&replace_list[5], NANO_NULL_KEY, _("Null Str"),
+ nano_null_msg, 0, 0, 0, VIEW, 0);
+
+ sc_init_one(&replace_list[6], NANO_CANCEL_KEY, _("Cancel"),
nano_cancel_msg, 0, 0, 0, VIEW, 0);
if (editbot != filebot || edittop == fileage) {
current_y = 0;
- current = editbot;
+ current = editbot;
if (current->prev != NULL)
current = current->prev;
/* if we can't save we have REAL bad problems,
* but we might as well TRY. */
- if(filename[0] == '\0') {
+ if (filename[0] == '\0') {
write_file("nano.save", 0);
} else {
char buf[BUFSIZ];
- strncpy(buf,filename,BUFSIZ);
- strncat(buf,".save",BUFSIZ - strlen(buf));
+ strncpy(buf, filename, BUFSIZ);
+ strncat(buf, ".save", BUFSIZ - strlen(buf));
write_file(buf, 0);
}
/* Restore the old term settings */
(" -T --tabsize=[num] Set width of a tab to num\n"));
#ifdef HAVE_REGEX_H
printf(_
- (" -R --regexp Use regular expressions for search\n"));
+ (" -R --regexp Use regular expressions for search\n"));
#endif
printf
(_
{
printf(_(" nano version %s by Chris Allegretta (compiled %s, %s)\n"),
VERSION, __TIME__, __DATE__);
- printf(_(" Email: nano@nano-editor.org Web: http://www.nano-editor.org\n"));
+ printf(_
+ (" Email: nano@nano-editor.org Web: http://www.nano-editor.org\n"));
}
filestruct *make_new_node(filestruct * prevnode)
}
/* Splice a node into an existing filestruct */
-void splice_node(filestruct *begin, filestruct *new, filestruct *end)
+void splice_node(filestruct * begin, filestruct * new, filestruct * end)
{
new->next = end;
new->prev = begin;
{
/* magic-line: when a character is inserted on the current magic line,
* it means we need a new one! */
- if(filebot == current && current->data[0] == '\0') {
+ if (filebot == current && current->data[0] == '\0') {
new_magicline();
fix_editbot();
}
*/
if (current_y == editwinrows - 1) {
edit_update(current, CENTER);
- reset_cursor();
+ reset_cursor();
} else {
current_y++;
edit_refresh();
current_word_start_t = i_tabs;
while (!isspace((int) inptr->data[i])
- && inptr->data[i]) {
+ && inptr->data[i]) {
i++;
i_tabs++;
if (inptr->data[i] < 32)
right = current_x - current_word_start;
i = current_word_start - 1;
- if (isspace((int)input_char) && (current_x == current_word_start)) {
+ if (isspace((int) input_char)
+ && (current_x == current_word_start)) {
current_x = current_word_start;
null_at(inptr->data, current_word_start);
/* Do not wrap if there are no words on or after wrap point. */
int char_found = 0;
- while (isspace((int)inptr->data[i]) && inptr->data[i])
+ while (isspace((int) inptr->data[i]) && inptr->data[i])
i++;
if (!inptr->data[i])
editbot = current;
/* Recreate the magic line if we're deleting it AND if the
- line we're on now is NOT blank. if it is blank we
- can just use IT for the magic line. This is how Pico
- appears to do it, in any case */
+ line we're on now is NOT blank. if it is blank we
+ can just use IT for the magic line. This is how Pico
+ appears to do it, in any case */
if (strcmp(current->data, "")) {
new_magicline();
fix_editbot();
/* Please see the comment in do_basckspace if you don't understand
this test */
- if (current == filebot && strcmp(current->data, ""))
- {
+ if (current == filebot && strcmp(current->data, "")) {
new_magicline();
fix_editbot();
totsize++;
}
current_x = mevent.x;
placewewant = current_x;
- while(foo < current_x) {
- if(current->data[foo] == NANO_CONTROL_I) {
+ while (foo < current_x) {
+ if (current->data[foo] == NANO_CONTROL_I) {
current_x -= tabsize - (foo % tabsize);
tab_found = 1;
- } else if(current->data[foo] & 0x80)
- ;
- else if(current->data[foo] < 32)
+ } else if (current->data[foo] & 0x80);
+ else if (current->data[foo] < 32)
current_x--;
foo++;
}
/* This is where tab_found comes in. I can't figure out why,
* but without it any line with a tab will place the cursor
* one character behind. Whatever, this fixes it. */
- if(tab_found == 1)
+ if (tab_found == 1)
current_x++;
if (current_x > strlen(current->data))
sigaction(SIGTSTP, &act, NULL);
endwin();
- fprintf(stderr,"\n\n\n\n\nUse \"fg\" to return to nano\n");
+ fprintf(stderr, "\n\n\n\n\nUse \"fg\" to return to nano\n");
raise(SIGTSTP);
}
if (!ISSET(SUSPEND)) {
sigaction(SIGTSTP, &act, NULL);
- }
- else
- {
+ } else {
act.sa_handler = do_suspend;
sigaction(SIGTSTP, &act, NULL);
act.sa_handler = do_cont;
- sigaction (SIGCONT, &act, NULL);
+ sigaction(SIGCONT, &act, NULL);
}
/* And the other windows */
topwin = newwin(2, COLS, 0, 0);
- bottomwin = newwin(3 - no_help(), COLS, LINES - 3 + no_help(), 0);\
-
+ bottomwin = newwin(3 - no_help(), COLS, LINES - 3 + no_help(), 0);
}
void mouse_init(void)
mousemask(BUTTON1_RELEASED, NULL);
mouseinterval(50);
- }
- else {
+ } else {
mousemask(0, NULL);
keypad(edit, FALSE);
keypad(bottomwin, FALSE);
slen = strlen(current->data);
totsize += slen;
- if((strlenpt(current->data) > (fill))
- && !no_spaces(current->data)) {
+ if ((strlenpt(current->data) > (fill))
+ && !no_spaces(current->data)) {
do {
int i = 0;
int len2 = 0;
i = slen;
for (; i > 0; i--) {
if (isspace((int) current->data[i]) &&
- ((strlenpt(current->data) - strlen(current->data +i)) <=
- fill)) break;
+ ((strlenpt(current->data) - strlen(current->data + i))
+ <= fill))
+ break;
}
if (!i)
- break;
+ break;
current->data[i] = '\0';
current = tmpline;
slen -= i + 1;
current_y++;
- } while ((strlenpt(current->data) > (fill))
- && !no_spaces(current->data));
+ } while ((strlenpt(current->data) > (fill))
+ && !no_spaces(current->data));
}
if (current->next)
if (main_list[i].misc1 > KEY_F0 && main_list[i].misc1 <= KEY_F(64))
sofar += snprintf(&buf[sofar], BUFSIZ - sofar, "(F%d) ",
- main_list[i].misc1 - KEY_F0);
+ main_list[i].misc1 - KEY_F0);
else
sofar += snprintf(&buf[sofar], BUFSIZ - sofar, " ");
if (main_list[i].altval > 0)
sofar += snprintf(&buf[sofar], BUFSIZ - sofar, "(M-%c) ",
- main_list[i].altval - 32);
+ main_list[i].altval - 32);
else
sofar += snprintf(&buf[sofar], BUFSIZ - sofar, " ");
/* And the toggles... */
for (i = 0; i <= TOGGLE_LEN - 1; i++) {
- sofar = snprintf(buf, BUFSIZ,
- "M-%c ", toggles[i].val - 32 );
+ sofar = snprintf(buf, BUFSIZ,
+ "M-%c ", toggles[i].val - 32);
if (toggles[i].desc != NULL)
- snprintf(&buf[sofar], BUFSIZ - sofar, _("%s enable/disable"),
- toggles[i].desc);
+ snprintf(&buf[sofar], BUFSIZ - sofar, _("%s enable/disable"),
+ toggles[i].desc);
strcat(help_text, buf);
strcat(help_text, "\n");
if (!ISSET(toggles[which].flag)) {
if (toggles[which].val == TOGGLE_NOHELP_KEY ||
- toggles[which].val == TOGGLE_WRAP_KEY)
+ toggles[which].val == TOGGLE_WRAP_KEY)
statusbar("%s %s", toggles[which].desc, enabled);
else
statusbar("%s %s", toggles[which].desc, disabled);
} else {
if (toggles[which].val == TOGGLE_NOHELP_KEY ||
- toggles[which].val == TOGGLE_WRAP_KEY)
+ toggles[which].val == TOGGLE_WRAP_KEY)
statusbar("%s %s", toggles[which].desc, disabled);
else
statusbar("%s %s", toggles[which].desc, enabled);
int option_index = 0;
struct option long_options[] = {
#ifdef HAVE_REGEX_H
- {"regexp", 0, 0, 'R'},
+ {"regexp", 0, 0, 'R'},
#endif
{"version", 0, 0, 'V'},
{"const", 0, 0, 'c'},
kbinput = wgetch(edit);
if (kbinput == 27) { /* Grab Alt-key stuff first */
switch (kbinput = wgetch(edit)) {
- /* Alt-O, suddenly very important ;) */
+ /* Alt-O, suddenly very important ;) */
case 79:
kbinput = wgetch(edit);
if (kbinput <= 'S' && kbinput >= 'P')
- kbinput = KEY_F(kbinput - 79);
+ kbinput = KEY_F(kbinput - 79);
#ifdef DEBUG
else {
- fprintf(stderr, _("I got Alt-O-%c! (%d)\n"),
- kbinput, kbinput);
- break;
+ fprintf(stderr, _("I got Alt-O-%c! (%d)\n"),
+ kbinput, kbinput);
+ break;
}
#endif
break;
case 91:
switch (kbinput = wgetch(edit)) {
- case '1': /* Alt-[-1-[0-5,7-9] = F1-F8 in X at least */
+ case '1': /* Alt-[-1-[0-5,7-9] = F1-F8 in X at least */
kbinput = wgetch(edit);
if (kbinput >= '1' && kbinput <= '5') {
- kbinput = KEY_F(kbinput - 48);
- wgetch(edit);
- }
- else if (kbinput >= '7' && kbinput <= '9') {
- kbinput = KEY_F(kbinput - 49);
- wgetch(edit);
- }
- else if (kbinput == 126)
- kbinput = KEY_HOME;
+ kbinput = KEY_F(kbinput - 48);
+ wgetch(edit);
+ } else if (kbinput >= '7' && kbinput <= '9') {
+ kbinput = KEY_F(kbinput - 49);
+ wgetch(edit);
+ } else if (kbinput == 126)
+ kbinput = KEY_HOME;
#ifdef DEBUG
else {
- fprintf(stderr, _("I got Alt-[-1-%c! (%d)\n"),
- kbinput, kbinput);
- break;
+ fprintf(stderr, _("I got Alt-[-1-%c! (%d)\n"),
+ kbinput, kbinput);
+ break;
}
#endif
break;
- case '2': /* Alt-[-2-[0,1,3,4] = F9-F12 in many terms */
+ case '2': /* Alt-[-2-[0,1,3,4] = F9-F12 in many terms */
kbinput = wgetch(edit);
switch (kbinput) {
- case '0':
- kbinput = KEY_F(9);
- wgetch(edit);
- break;
- case '1':
- kbinput = KEY_F(10);
- wgetch(edit);
- break;
- case '3':
- kbinput = KEY_F(11);
- wgetch(edit);
- break;
- case '4':
- kbinput = KEY_F(12);
- wgetch(edit);
- break;
- case 126: /* Hack, make insert key do something
- usefile, like insert file */
- do_insertfile();
- keyhandled = 1;
- break;
+ case '0':
+ kbinput = KEY_F(9);
+ wgetch(edit);
+ break;
+ case '1':
+ kbinput = KEY_F(10);
+ wgetch(edit);
+ break;
+ case '3':
+ kbinput = KEY_F(11);
+ wgetch(edit);
+ break;
+ case '4':
+ kbinput = KEY_F(12);
+ wgetch(edit);
+ break;
+ case 126: /* Hack, make insert key do something
+ usefile, like insert file */
+ do_insertfile();
+ keyhandled = 1;
+ break;
#ifdef DEBUG
- default:
- fprintf(stderr, _("I got Alt-[-2-%c! (%d)\n"),
- kbinput, kbinput);
- break;
+ default:
+ fprintf(stderr, _("I got Alt-[-2-%c! (%d)\n"),
+ kbinput, kbinput);
+ break;
#endif
}
break;
- case '3': /* Alt-[-3 = Delete? */
+ case '3': /* Alt-[-3 = Delete? */
kbinput = NANO_DELETE_KEY;
wgetch(edit);
break;
- case '4': /* Alt-[-4 = End? */
+ case '4': /* Alt-[-4 = End? */
kbinput = NANO_END_KEY;
wgetch(edit);
break;
- case '5': /* Alt-[-5 = Page Up */
+ case '5': /* Alt-[-5 = Page Up */
kbinput = KEY_PPAGE;
wgetch(edit);
break;
- case '6': /* Alt-[-6 = Page Down */
+ case '6': /* Alt-[-6 = Page Down */
kbinput = KEY_NPAGE;
wgetch(edit);
break;
- case '[': /* Alt-[-[-[A-E], F1-F5 in linux console */
+ case '[': /* Alt-[-[-[A-E], F1-F5 in linux console */
kbinput = wgetch(edit);
- if (kbinput >= 'A' && kbinput <= 'E')
- kbinput = KEY_F(kbinput - 64);
+ if (kbinput >= 'A' && kbinput <= 'E')
+ kbinput = KEY_F(kbinput - 64);
break;
case 'A':
kbinput = KEY_UP;
for (i = 0; i <= MAIN_LIST_LEN - 1; i++)
if (kbinput == main_list[i].altval ||
kbinput == main_list[i].altval - 32) {
- kbinput = main_list[i].val;
- break;
+ kbinput = main_list[i].val;
+ break;
}
#ifndef NANO_SMALL
/* And for toggle switches */
for (i = 0; i <= TOGGLE_LEN - 1 && !keyhandled; i++)
if (kbinput == toggles[i].val ||
kbinput == toggles[i].val - 32) {
- do_toggle(i);
- keyhandled = 1;
- break;
+ do_toggle(i);
+ keyhandled = 1;
+ break;
}
#endif
#ifdef DEBUG
case -1:
case 410: /* Must ignore this, it gets sent when we resize */
#ifdef PDCURSES
- case 541: /* ???? */
- case 542: /* Control and alt in Windows *shrug* */
+ case 541: /* ???? */
+ case 542: /* Control and alt in Windows *shrug* */
case 544:
#endif
-
+
break;
default:
#ifdef DEBUG
#define NANO_SUSPEND_KEY NANO_CONTROL_Z
#define NANO_ENTER_KEY NANO_CONTROL_M
#define NANO_FROMSEARCHTOGOTO_KEY NANO_CONTROL_T
+#define NANO_NULL_KEY NANO_CONTROL_N
#define TOGGLE_CONST_KEY NANO_ALT_C
#define TOGGLE_AUTOINDENT_KEY NANO_ALT_I
#define MAIN_LIST_LEN 26
#define MAIN_VISIBLE 12
#define WHEREIS_LIST_LEN 6
-#define REPLACE_LIST_LEN 6
+#define REPLACE_LIST_LEN 7
#define GOTO_LIST_LEN 3
#define WRITEFILE_LIST_LEN 1
#define HELP_LIST_LEN 3
{"Insert a carriage return at the cursor position", 58},
{"Make the current search or replace case (in)sensitive", 59},
{"Cancel the current function", 60},
- {"Get Help", 61},
- {"WriteOut", 62},
- {"Exit", 63},
- {"Goto Line", 64},
- {"Justify", 65},
- {"Replace", 66},
- {"Read File", 67},
- {"Where Is", 68},
- {"Prev Page", 69},
- {"Next Page", 70},
- {"Cut Text", 71},
- {"UnCut Txt", 72},
- {"Cur Pos", 73},
- {"To Spell", 74},
- {"Up", 75},
- {"Down", 76},
- {"Forward", 77},
- {"Back", 78},
- {"Home", 79},
- {"End", 80},
- {"Refresh", 81},
- {"Mark Text", 82},
- {"Delete", 83},
- {"Backspace", 84},
- {"Tab", 85},
- {"Enter", 86},
- {"First Line", 87},
- {"Last Line", 88},
- {"Case Sens", 89},
- {"Cancel", 90},
- {"No Replace", 91},
+ {"Use the null string, \"\"", 61},
+ {"Get Help", 62},
+ {"WriteOut", 63},
+ {"Exit", 64},
+ {"Goto Line", 65},
+ {"Justify", 66},
+ {"Replace", 67},
+ {"Read File", 68},
+ {"Where Is", 69},
+ {"Prev Page", 70},
+ {"Next Page", 71},
+ {"Cut Text", 72},
+ {"UnCut Txt", 73},
+ {"Cur Pos", 74},
+ {"To Spell", 75},
+ {"Up", 76},
+ {"Down", 77},
+ {"Forward", 78},
+ {"Back", 79},
+ {"Home", 80},
+ {"End", 81},
+ {"Refresh", 82},
+ {"Mark Text", 83},
+ {"Delete", 84},
+ {"Backspace", 85},
+ {"Tab", 86},
+ {"Enter", 87},
+ {"First Line", 88},
+ {"Last Line", 89},
+ {"Case Sens", 90},
+ {"Cancel", 91},
+ {"No Replace", 92},
+ {"Null Str", 93},
{"\
\n\
-Buffer written to 'nano.save'\n", 92},
- {"Key illegal in VIEW mode", 93},
+Buffer written to 'nano.save'\n", 94},
+ {"Key illegal in VIEW mode", 95},
{"\
nano help text\n\
\n\
using either the Esc, Alt or Meta key depending on your keyboard setup. The \
following keystrokes are available in the main editor window. Optional keys \
are shown in parentheses:\n\
-\n", 94},
- {"free_node(): free'd a node, YAY!\n", 95},
- {"free_node(): free'd last node.\n", 96},
+\n", 96},
+ {"free_node(): free'd a node, YAY!\n", 97},
+ {"free_node(): free'd last node.\n", 98},
{"\
Usage: nano [GNU long option] [option] +LINE <file>\n\
-\n", 97},
- {"Option\t\tLong option\t\tMeaning\n", 98},
- {" -T \t\t--tabsize=[num]\t\tSet width of a tab to num\n", 99},
- {" -R\t\t--regexp\t\tUse regular expressions for search\n", 100},
- {" -V \t\t--version\t\tPrint version information and exit\n", 101},
- {" -c \t\t--const\t\t\tConstantly show cursor position\n", 102},
- {" -h \t\t--help\t\t\tShow this message\n", 103},
- {" -k \t\t--cut\t\t\tLet ^K cut from cursor to end of line\n", 104},
- {" -i \t\t--autoindent\t\tAutomatically indent new lines\n", 105},
- {" -l \t\t--nofollow\t\tDon't follow symbolic links, overwrite\n", 106},
- {" -m \t\t--mouse\t\t\tEnable mouse\n", 107},
+\n", 99},
+ {"Option\t\tLong option\t\tMeaning\n", 100},
+ {" -T \t\t--tabsize=[num]\t\tSet width of a tab to num\n", 101},
+ {" -R\t\t--regexp\t\tUse regular expressions for search\n", 102},
+ {" -V \t\t--version\t\tPrint version information and exit\n", 103},
+ {" -c \t\t--const\t\t\tConstantly show cursor position\n", 104},
+ {" -h \t\t--help\t\t\tShow this message\n", 105},
+ {" -k \t\t--cut\t\t\tLet ^K cut from cursor to end of line\n", 106},
+ {" -i \t\t--autoindent\t\tAutomatically indent new lines\n", 107},
+ {" -l \t\t--nofollow\t\tDon't follow symbolic links, overwrite\n", 108},
+ {" -m \t\t--mouse\t\t\tEnable mouse\n", 109},
{"\
- -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n", 108},
- {" -p\t \t--pico\t\t\tMake bottom 2 lines more Pico-like\n", 109},
- {" -s [prog] \t--speller=[prog]\tEnable alternate speller\n", 110},
- {" -t \t\t--tempfile\t\tAuto save on exit, don't prompt\n", 111},
- {" -v \t\t--view\t\t\tView (read only) mode\n", 112},
- {" -w \t\t--nowrap\t\tDon't wrap long lines\n", 113},
- {" -x \t\t--nohelp\t\tDon't show help window\n", 114},
- {" -z \t\t--suspend\t\tEnable suspend\n", 115},
- {" +LINE\t\t\t\t\tStart at line number LINE\n", 116},
+ -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n", 110},
+ {" -p\t \t--pico\t\t\tMake bottom 2 lines more Pico-like\n", 111},
+ {" -s [prog] \t--speller=[prog]\tEnable alternate speller\n", 112},
+ {" -t \t\t--tempfile\t\tAuto save on exit, don't prompt\n", 113},
+ {" -v \t\t--view\t\t\tView (read only) mode\n", 114},
+ {" -w \t\t--nowrap\t\tDon't wrap long lines\n", 115},
+ {" -x \t\t--nohelp\t\tDon't show help window\n", 116},
+ {" -z \t\t--suspend\t\tEnable suspend\n", 117},
+ {" +LINE\t\t\t\t\tStart at line number LINE\n", 118},
{"\
Usage: nano [option] +LINE <file>\n\
-\n", 117},
- {"Option\t\tMeaning\n", 118},
- {" -T [num]\tSet width of a tab to num\n", 119},
- {" -R\t\tUse regular expressions for search\n", 120},
- {" -V \t\tPrint version information and exit\n", 121},
- {" -c \t\tConstantly show cursor position\n", 122},
- {" -h \t\tShow this message\n", 123},
- {" -k \t\tLet ^K cut from cursor to end of line\n", 124},
- {" -i \t\tAutomatically indent new lines\n", 125},
- {" -l \t\tDon't follow symbolic links, overwrite\n", 126},
- {" -m \t\tEnable mouse\n", 127},
- {" -r [#cols] \tSet fill cols to (wrap lines at) #cols\n", 128},
- {" -s [prog] \tEnable alternate speller\n", 129},
- {" -p \t\tMake bottom 2 lines more Pico-like\n", 130},
- {" -t \t\tAuto save on exit, don't prompt\n", 131},
- {" -v \t\tView (read only) mode\n", 132},
- {" -w \t\tDon't wrap long lines\n", 133},
- {" -x \t\tDon't show help window\n", 134},
- {" -z \t\tEnable suspend\n", 135},
- {" +LINE\t\tStart at line number LINE\n", 136},
- {" nano version %s by Chris Allegretta (compiled %s, %s)\n", 137},
- {" Email: nano@nano-editor.org\tWeb: http://www.nano-editor.org\n", 138},
- {"Mark Set", 139},
- {"Mark UNset", 140},
- {"check_wrap called with inptr->data=\"%s\"\n", 141},
- {"current->data now = \"%s\"\n", 142},
- {"After, data = \"%s\"\n", 143},
- {"Error deleting tempfile, ack!", 144},
- {"Could not create a temporary filename: %s", 145},
- {"Could not invoke spell program \"%s\"", 146},
- {"Could not invoke \"ispell\"", 147},
- {"Finished checking spelling", 148},
- {"Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? ", 149},
- {"Cannot resize top win", 150},
- {"Cannot move top win", 151},
- {"Cannot resize edit win", 152},
- {"Cannot move edit win", 153},
- {"Cannot resize bottom win", 154},
- {"Cannot move bottom win", 155},
- {"%s enable/disable", 156},
- {"enabled", 157},
- {"disabled", 158},
- {"Main: set up windows\n", 159},
- {"Main: bottom win\n", 160},
- {"Main: open file\n", 161},
- {"I got Alt-O-%c! (%d)\n", 162},
- {"I got Alt-[-1-%c! (%d)\n", 163},
- {"I got Alt-[-2-%c! (%d)\n", 164},
- {"I got Alt-[-%c! (%d)\n", 165},
- {"I got Alt-%c! (%d)\n", 166},
- {"Case Sensitive Regexp Search%s%s", 167},
- {"Regexp Search%s%s", 168},
- {"Case Sensitive Search%s%s", 169},
- {"Search%s%s", 170},
- {" (to replace)", 171},
- {"Search Cancelled", 172},
- {"Search Wrapped", 173},
- {"Replaced %d occurences", 174},
- {"Replaced 1 occurence", 175},
- {"Replace Cancelled", 176},
- {"Replace with [%s]", 177},
- {"Replace with", 178},
- {"Replace this instance?", 179},
- {"Enter line number", 180},
- {"Aborted", 181},
- {"Come on, be reasonable", 182},
- {"Only %d lines available, skipping to last line", 183},
- {"actual_x_from_start for xplus=%d returned %d\n", 184},
- {"input '%c' (%d)\n", 185},
- {"New Buffer", 186},
- {" File: ...", 187},
- {"Modified", 188},
- {"Moved to (%d, %d) in edit buffer\n", 189},
- {"current->data = \"%s\"\n", 190},
- {"I got \"%s\"\n", 191},
- {"Yes", 192},
- {"All", 193},
- {"No", 194},
- {"do_cursorpos: linepct = %f, bytepct = %f\n", 195},
- {"line %d of %d (%.0f%%), character %d of %d (%.0f%%)", 196},
- {"Dumping file buffer to stderr...\n", 197},
- {"Dumping cutbuffer to stderr...\n", 198},
- {"Dumping a buffer to stderr...\n", 199},
+\n", 119},
+ {"Option\t\tMeaning\n", 120},
+ {" -T [num]\tSet width of a tab to num\n", 121},
+ {" -R\t\tUse regular expressions for search\n", 122},
+ {" -V \t\tPrint version information and exit\n", 123},
+ {" -c \t\tConstantly show cursor position\n", 124},
+ {" -h \t\tShow this message\n", 125},
+ {" -k \t\tLet ^K cut from cursor to end of line\n", 126},
+ {" -i \t\tAutomatically indent new lines\n", 127},
+ {" -l \t\tDon't follow symbolic links, overwrite\n", 128},
+ {" -m \t\tEnable mouse\n", 129},
+ {" -r [#cols] \tSet fill cols to (wrap lines at) #cols\n", 130},
+ {" -s [prog] \tEnable alternate speller\n", 131},
+ {" -p \t\tMake bottom 2 lines more Pico-like\n", 132},
+ {" -t \t\tAuto save on exit, don't prompt\n", 133},
+ {" -v \t\tView (read only) mode\n", 134},
+ {" -w \t\tDon't wrap long lines\n", 135},
+ {" -x \t\tDon't show help window\n", 136},
+ {" -z \t\tEnable suspend\n", 137},
+ {" +LINE\t\tStart at line number LINE\n", 138},
+ {" nano version %s by Chris Allegretta (compiled %s, %s)\n", 139},
+ {" Email: nano@nano-editor.org\tWeb: http://www.nano-editor.org\n", 140},
+ {"Mark Set", 141},
+ {"Mark UNset", 142},
+ {"check_wrap called with inptr->data=\"%s\"\n", 143},
+ {"current->data now = \"%s\"\n", 144},
+ {"After, data = \"%s\"\n", 145},
+ {"Error deleting tempfile, ack!", 146},
+ {"Could not create a temporary filename: %s", 147},
+ {"Could not invoke spell program \"%s\"", 148},
+ {"Could not invoke \"ispell\"", 149},
+ {"Finished checking spelling", 150},
+ {"Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? ", 151},
+ {"Cannot resize top win", 152},
+ {"Cannot move top win", 153},
+ {"Cannot resize edit win", 154},
+ {"Cannot move edit win", 155},
+ {"Cannot resize bottom win", 156},
+ {"Cannot move bottom win", 157},
+ {"%s enable/disable", 158},
+ {"enabled", 159},
+ {"disabled", 160},
+ {"Main: set up windows\n", 161},
+ {"Main: bottom win\n", 162},
+ {"Main: open file\n", 163},
+ {"I got Alt-O-%c! (%d)\n", 164},
+ {"I got Alt-[-1-%c! (%d)\n", 165},
+ {"I got Alt-[-2-%c! (%d)\n", 166},
+ {"I got Alt-[-%c! (%d)\n", 167},
+ {"I got Alt-%c! (%d)\n", 168},
+ {"Case Sensitive Regexp Search%s%s", 169},
+ {"Regexp Search%s%s", 170},
+ {"Case Sensitive Search%s%s", 171},
+ {"Search%s%s", 172},
+ {" (to replace)", 173},
+ {"Search Cancelled", 174},
+ {"Search Wrapped", 175},
+ {"Replaced %d occurences", 176},
+ {"Replaced 1 occurence", 177},
+ {"Replace Cancelled", 178},
+ {"Nothing Happens", 179},
+ {"Replace with [%s]", 180},
+ {"Replace with", 181},
+ {"Replace this instance?", 182},
+ {"Enter line number", 183},
+ {"Aborted", 184},
+ {"Come on, be reasonable", 185},
+ {"Only %d lines available, skipping to last line", 186},
+ {"actual_x_from_start for xplus=%d returned %d\n", 187},
+ {"input '%c' (%d)\n", 188},
+ {"New Buffer", 189},
+ {" File: ...", 190},
+ {"Modified", 191},
+ {"Moved to (%d, %d) in edit buffer\n", 192},
+ {"current->data = \"%s\"\n", 193},
+ {"I got \"%s\"\n", 194},
+ {"Yes", 195},
+ {"All", 196},
+ {"No", 197},
+ {"do_cursorpos: linepct = %f, bytepct = %f\n", 198},
+ {"line %d of %d (%.0f%%), character %d of %d (%.0f%%)", 199},
+ {"Dumping file buffer to stderr...\n", 200},
+ {"Dumping cutbuffer to stderr...\n", 201},
+ {"Dumping a buffer to stderr...\n", 202},
};
-int _msg_tbl_length = 199;
+int _msg_tbl_length = 202;
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-10-24 01:12-0400\n"
+"POT-Creation-Date: 2000-10-25 21:35-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "File to insert [from ./] "
msgstr ""
-#: files.c:274 files.c:298 files.c:488 nano.c:1133
+#: files.c:274 files.c:298 files.c:486 nano.c:1134
msgid "Cancelled"
msgstr ""
-#: files.c:320 files.c:340 files.c:353 files.c:370 files.c:376
+#: files.c:320 files.c:340 files.c:354 files.c:371 files.c:377
#, c-format
msgid "Could not open file for writing: %s"
msgstr ""
msgid "Could not open file: Path length exceeded."
msgstr ""
-#: files.c:358
+#: files.c:359
#, c-format
msgid "Wrote >%s\n"
msgstr ""
-#: files.c:385
+#: files.c:386
#, c-format
msgid "Could not close %s: %s"
msgstr ""
#. Try a rename??
-#: files.c:406 files.c:417 files.c:422
+#: files.c:407 files.c:418 files.c:423
#, c-format
msgid "Could not open %s for writing: %s"
msgstr ""
-#: files.c:428
+#: files.c:429
#, c-format
msgid "Could not set permissions %o on %s: %s"
msgstr ""
-#: files.c:435
+#: files.c:436
#, c-format
msgid "Wrote %d lines"
msgstr ""
-#: files.c:467
+#: files.c:465
msgid "File Name to write"
msgstr ""
-#: files.c:472
+#: files.c:470
#, c-format
msgid "filename is %s"
msgstr ""
-#: files.c:477
+#: files.c:475
msgid "File exists, OVERWRITE ?"
msgstr ""
msgid "Cancel the current function"
msgstr ""
-#: global.c:210 global.c:322 global.c:394
+#: global.c:207
+msgid "Use the null string, \"\""
+msgstr ""
+
+#: global.c:211 global.c:323 global.c:400
msgid "Get Help"
msgstr ""
-#: global.c:213 global.c:221
+#: global.c:214 global.c:222
msgid "WriteOut"
msgstr ""
-#: global.c:217 global.c:383
+#: global.c:218 global.c:389
msgid "Exit"
msgstr ""
-#: global.c:225 global.c:318 global.c:339 global.c:358
+#: global.c:226 global.c:319 global.c:341 global.c:361
msgid "Goto Line"
msgstr ""
-#: global.c:230 global.c:309
+#: global.c:231 global.c:310
msgid "Justify"
msgstr ""
-#: global.c:234 global.c:305 global.c:336
+#: global.c:235 global.c:306 global.c:337
msgid "Replace"
msgstr ""
-#: global.c:238
+#: global.c:239
msgid "Read File"
msgstr ""
-#: global.c:242
+#: global.c:243
msgid "Where Is"
msgstr ""
-#: global.c:246 global.c:375
+#: global.c:247 global.c:381
msgid "Prev Page"
msgstr ""
-#: global.c:250 global.c:379
+#: global.c:251 global.c:385
msgid "Next Page"
msgstr ""
-#: global.c:254
+#: global.c:255
msgid "Cut Text"
msgstr ""
-#: global.c:257
+#: global.c:258
msgid "UnCut Txt"
msgstr ""
-#: global.c:261
+#: global.c:262
msgid "Cur Pos"
msgstr ""
-#: global.c:265
+#: global.c:266
msgid "To Spell"
msgstr ""
-#: global.c:269
+#: global.c:270
msgid "Up"
msgstr ""
-#: global.c:272
+#: global.c:273
msgid "Down"
msgstr ""
-#: global.c:275
+#: global.c:276
msgid "Forward"
msgstr ""
-#: global.c:278
+#: global.c:279
msgid "Back"
msgstr ""
-#: global.c:281
+#: global.c:282
msgid "Home"
msgstr ""
-#: global.c:284
+#: global.c:285
msgid "End"
msgstr ""
-#: global.c:287
+#: global.c:288
msgid "Refresh"
msgstr ""
-#: global.c:290
+#: global.c:291
msgid "Mark Text"
msgstr ""
-#: global.c:293
+#: global.c:294
msgid "Delete"
msgstr ""
-#: global.c:297
+#: global.c:298
msgid "Backspace"
msgstr ""
-#: global.c:301
+#: global.c:302
msgid "Tab"
msgstr ""
-#: global.c:313
+#: global.c:314
msgid "Enter"
msgstr ""
-#: global.c:326 global.c:346 global.c:365
+#: global.c:327 global.c:348 global.c:371
msgid "First Line"
msgstr ""
-#: global.c:329 global.c:349 global.c:368
+#: global.c:330 global.c:351 global.c:374
msgid "Last Line"
msgstr ""
-#: global.c:332 global.c:352
+#: global.c:333 global.c:354
msgid "Case Sens"
msgstr ""
-#: global.c:342 global.c:361 global.c:371 global.c:387 global.c:391
-#: global.c:397 winio.c:979
+#: global.c:344 global.c:367 global.c:377 global.c:393 global.c:397
+#: global.c:403 winio.c:971
msgid "Cancel"
msgstr ""
-#: global.c:355
+#: global.c:357
msgid "No Replace"
msgstr ""
+#: global.c:364
+msgid "Null Str"
+msgstr ""
+
#: nano.c:115
msgid ""
"\n"
msgid " nano version %s by Chris Allegretta (compiled %s, %s)\n"
msgstr ""
-#: nano.c:402
+#: nano.c:403
msgid " Email: nano@nano-editor.org\tWeb: http://www.nano-editor.org\n"
msgstr ""
-#: nano.c:437
+#: nano.c:438
msgid "Mark Set"
msgstr ""
-#: nano.c:442
+#: nano.c:443
msgid "Mark UNset"
msgstr ""
-#: nano.c:868
+#: nano.c:870
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr ""
-#: nano.c:919
+#: nano.c:921
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr ""
-#: nano.c:972
+#: nano.c:974
#, c-format
msgid "After, data = \"%s\"\n"
msgstr ""
-#: nano.c:1042
+#: nano.c:1043
msgid "Error deleting tempfile, ack!"
msgstr ""
-#: nano.c:1060
+#: nano.c:1061
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr ""
-#: nano.c:1083
+#: nano.c:1084
#, c-format
msgid "Could not invoke spell program \"%s\""
msgstr ""
#. Why 32512? I dont know!
-#: nano.c:1089
+#: nano.c:1090
msgid "Could not invoke \"ispell\""
msgstr ""
-#: nano.c:1102
+#: nano.c:1103
msgid "Finished checking spelling"
msgstr ""
-#: nano.c:1120
+#: nano.c:1121
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr ""
msgid "Cannot move bottom win"
msgstr ""
-#: nano.c:1638
+#: nano.c:1635
#, c-format
msgid "%s enable/disable"
msgstr ""
-#: nano.c:1650
+#: nano.c:1647
msgid "enabled"
msgstr ""
-#: nano.c:1651
+#: nano.c:1648
msgid "disabled"
msgstr ""
-#: nano.c:1881
+#: nano.c:1878
msgid "Main: set up windows\n"
msgstr ""
-#: nano.c:1895
+#: nano.c:1892
msgid "Main: bottom win\n"
msgstr ""
-#: nano.c:1901
+#: nano.c:1898
msgid "Main: open file\n"
msgstr ""
-#: nano.c:1935
+#: nano.c:1932
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr ""
-#: nano.c:1959
+#: nano.c:1954
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr ""
-#: nano.c:1992
+#: nano.c:1987
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr ""
-#: nano.c:2040
+#: nano.c:2035
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr ""
-#: nano.c:2066
+#: nano.c:2061
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr ""
msgid "Regexp Search%s%s"
msgstr ""
-#: search.c:82
+#: search.c:81
#, c-format
msgid "Case Sensitive Search%s%s"
msgstr ""
-#: search.c:84
+#: search.c:83
#, c-format
msgid "Search%s%s"
msgstr ""
-#: search.c:87
+#: search.c:86
msgid " (to replace)"
msgstr ""
-#: search.c:95
+#: search.c:94
msgid "Search Cancelled"
msgstr ""
msgid "Replaced 1 occurence"
msgstr ""
-#: search.c:392 search.c:413 search.c:436
+#: search.c:390 search.c:419 search.c:444
msgid "Replace Cancelled"
msgstr ""
-#: search.c:409
+#. They used ^N in the search field, shame on them.
+#. Any Dungeon fans out there?
+#: search.c:407
+msgid "Nothing Happens"
+msgstr ""
+
+#: search.c:415
#, c-format
msgid "Replace with [%s]"
msgstr ""
#. last_search is empty
-#: search.c:434
+#: search.c:442
msgid "Replace with"
msgstr ""
-#: search.c:475
+#: search.c:485
msgid "Replace this instance?"
msgstr ""
#. Ask for it
-#: search.c:536
+#: search.c:546
msgid "Enter line number"
msgstr ""
-#: search.c:538
+#: search.c:548
msgid "Aborted"
msgstr ""
-#: search.c:558
+#: search.c:568
msgid "Come on, be reasonable"
msgstr ""
-#: search.c:563
+#: search.c:573
#, c-format
msgid "Only %d lines available, skipping to last line"
msgstr ""
msgid "Modified"
msgstr ""
-#: winio.c:895
+#: winio.c:887
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr ""
-#: winio.c:906
+#: winio.c:898
#, c-format
msgid "current->data = \"%s\"\n"
msgstr ""
-#: winio.c:949
+#: winio.c:941
#, c-format
msgid "I got \"%s\"\n"
msgstr ""
-#: winio.c:974
+#: winio.c:966
msgid "Yes"
msgstr ""
-#: winio.c:976
+#: winio.c:968
msgid "All"
msgstr ""
-#: winio.c:978
+#: winio.c:970
msgid "No"
msgstr ""
-#: winio.c:1115
+#: winio.c:1107
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr ""
-#: winio.c:1119
+#: winio.c:1111
msgid "line %d of %d (%.0f%%), character %d of %d (%.0f%%)"
msgstr ""
-#: winio.c:1247
+#: winio.c:1239
msgid "Dumping file buffer to stderr...\n"
msgstr ""
-#: winio.c:1249
+#: winio.c:1241
msgid "Dumping cutbuffer to stderr...\n"
msgstr ""
-#: winio.c:1251
+#: winio.c:1243
msgid "Dumping a buffer to stderr...\n"
msgstr ""
static char last_search[132] = ""; /* Last string we searched for */
static char last_replace[132] = ""; /* Last replacement string */
-static int search_last_line;
+static int search_last_line;
/* Regular expression helper functions */
int i;
char buf[BUFSIZ];
char *prompt, *reprompt = "";
-
+
if (last_search[0]) {
snprintf(buf, BUFSIZ, " [%s]", last_search);
} else {
}
if (ISSET(USE_REGEXP) && ISSET(CASE_SENSITIVE))
- prompt = _("Case Sensitive Regexp Search%s%s");
+ prompt = _("Case Sensitive Regexp Search%s%s");
else if (ISSET(USE_REGEXP))
- prompt = _("Regexp Search%s%s");
- else
- if (ISSET(CASE_SENSITIVE))
- prompt = _("Case Sensitive Search%s%s");
+ prompt = _("Regexp Search%s%s");
+ else if (ISSET(CASE_SENSITIVE))
+ prompt = _("Case Sensitive Search%s%s");
else
- prompt = _("Search%s%s");
+ prompt = _("Search%s%s");
if (replacing)
reprompt = _(" (to replace)");
-
+
i = statusq(replacing ? replace_list : whereis_list,
replacing ? REPLACE_LIST_LEN : WHEREIS_LIST_LEN, "",
prompt, reprompt, buf);
} else if (i == -2) { /* Same string */
strncpy(answer, last_search, 132);
#ifdef HAVE_REGEX_H
- if (ISSET(USE_REGEXP))
- regexp_init(answer);
+ if (ISSET(USE_REGEXP))
+ regexp_init(answer);
#endif
} else if (i == 0) { /* They entered something new */
strncpy(last_search, answer, 132);
#ifdef HAVE_REGEX_H
- if (ISSET(USE_REGEXP))
- regexp_init(answer);
+ if (ISSET(USE_REGEXP))
+ regexp_init(answer);
#endif
/* Blow away last_replace because they entered a new search
string....uh, right? =) */
return 0;
}
-filestruct *findnextstr(int quiet, filestruct * begin, int beginx, char *needle)
+filestruct *findnextstr(int quiet, filestruct * begin, int beginx,
+ char *needle)
{
filestruct *fileptr;
char *searchstr, *found = NULL, *tmp;
current_x++;
/* Are we searching the last line? (i.e. the line where search started) */
- if ( (fileptr == begin) && (current_x < beginx) )
+ if ((fileptr == begin) && (current_x < beginx))
search_last_line = 1;
/* Make sure we haven't passed the end of the string */
- if ( strlen(fileptr->data) < current_x )
+ if (strlen(fileptr->data) < current_x)
current_x--;
searchstr = &fileptr->data[current_x];
/* Look for needle in searchstr */
- while (( found = strstrwrapper(searchstr, needle)) == NULL) {
+ while ((found = strstrwrapper(searchstr, needle)) == NULL) {
/* finished processing file, get out */
- if (search_last_line) {
+ if (search_last_line) {
if (!quiet)
statusbar(_("\"%s\" not found"), needle);
return NULL;
UNSET(KEEP_CUTBUFFER);
display_main_list();
wrefresh(bottomwin);
- if (ISSET(MARK_ISSET))
+ if (ISSET(MARK_ISSET))
edit_refresh_clearok();
#ifdef HAVE_REGEX_H
if (ISSET(REGEXP_COMPILED))
- regexp_cleanup();
+ regexp_cleanup();
#endif
}
char *c;
int new_size = strlen(current->data) + 1;
- int search_match_count = regmatches[0].rm_eo -
- regmatches[0].rm_so;
+ int search_match_count = regmatches[0].rm_eo - regmatches[0].rm_so;
new_size -= search_match_count;
c = last_replace;
while (*c) {
- if (*c != '\\') {
- if (create_flag)
- *string++=*c;
- c++;
- new_size++;
- } else {
- int num = (int)*(c+1) - (int)'0';
- if (num >= 1 && num <= 9) {
-
- int i = regmatches[num].rm_so;
-
- if (num > search_regexp.re_nsub) {
- /* Ugh, they specified a subexpression that doesn't
- exist. */
- return -1;
- }
-
- /* Skip over the replacement expression */
- c+=2;
-
- /* But add the length of the subexpression to new_size */
- new_size += regmatches[num].rm_eo - regmatches[num].rm_so;
-
- /* And if create_flag is set, append the result of the
- * subexpression match to the new line */
- while (create_flag && i < regmatches[num].rm_eo )
- *string++=*(current->data + i++);
-
- } else {
- if (create_flag)
- *string++=*c;
- c++;
- new_size++;
- }
- }
+ if (*c != '\\') {
+ if (create_flag)
+ *string++ = *c;
+ c++;
+ new_size++;
+ } else {
+ int num = (int) *(c + 1) - (int) '0';
+ if (num >= 1 && num <= 9) {
+
+ int i = regmatches[num].rm_so;
+
+ if (num > search_regexp.re_nsub) {
+ /* Ugh, they specified a subexpression that doesn't
+ exist. */
+ return -1;
+ }
+
+ /* Skip over the replacement expression */
+ c += 2;
+
+ /* But add the length of the subexpression to new_size */
+ new_size += regmatches[num].rm_eo - regmatches[num].rm_so;
+
+ /* And if create_flag is set, append the result of the
+ * subexpression match to the new line */
+ while (create_flag && i < regmatches[num].rm_eo)
+ *string++ = *(current->data + i++);
+
+ } else {
+ if (create_flag)
+ *string++ = *c;
+ c++;
+ new_size++;
+ }
+ }
}
if (create_flag)
- *string = 0;
+ *string = 0;
return new_size;
}
#endif
-
+
char *replace_line()
{
char *copy, *tmp;
/* Calculate size of new line */
#ifdef HAVE_REGEX_H
if (ISSET(USE_REGEXP)) {
- search_match_count = regmatches[0].rm_eo -
- regmatches[0].rm_so;
- new_line_size = replace_regexp(NULL, 0);
- /* If they specified an invalid subexpression in the replace
- * text, return NULL indicating an error */
- if (new_line_size < 0)
- return NULL;
+ search_match_count = regmatches[0].rm_eo - regmatches[0].rm_so;
+ new_line_size = replace_regexp(NULL, 0);
+ /* If they specified an invalid subexpression in the replace
+ * text, return NULL indicating an error */
+ if (new_line_size < 0)
+ return NULL;
} else {
#else
{
#endif
- search_match_count = strlen(last_search);
- new_line_size = strlen(current->data) - strlen(last_search) +
- strlen(last_replace) + 1;
+ search_match_count = strlen(last_search);
+ new_line_size = strlen(current->data) - strlen(last_search) +
+ strlen(last_replace) + 1;
}
-
+
/* Create buffer */
copy = nmalloc(new_line_size);
/* Replacement Text */
if (!ISSET(USE_REGEXP))
- strcat(copy, last_replace);
+ strcat(copy, last_replace);
#ifdef HAVE_REGEX_H
else
- (void)replace_regexp(copy + current_x, 1);
+ (void) replace_regexp(copy + current_x, 1);
#endif
/* The tail of the original line */
replace_abort();
return 0;
}
+
+ if (!strcmp(answer, "")) {
+ /* They used ^N in the search field, shame on them.
+ Any Dungeon fans out there? */
+ statusbar(_("Nothing Happens"));
+ replace_abort();
+ return 0;
+ }
strncpy(prevanswer, answer, 132);
if (strcmp(last_replace, "")) { /* There's a previous replace str */
return 0;
} else if (i == 0) /* They actually entered something */
strncpy(last_replace, answer, 132);
+ else if (i == NANO_NULL_KEY) /* They actually entered something */
+ strcpy(last_replace, "");
else if (i == NANO_CASE_KEY) { /* They asked for case sensitivity */
if (ISSET(CASE_SENSITIVE))
UNSET(CASE_SENSITIVE);
do_replace();
return 0;
- } else if (i != -2 ) { /* First page, last page, for example could get here */
+ } else if (i != -2) { /* First page, last page, for example could get here */
do_early_abort();
replace_abort();
SET(CASE_SENSITIVE);
do_replace();
- return 1;
- } else { /* First line key, etc. */
+ return -1;
+ } else if (i == NANO_NULL_KEY)
+ strcpy(last_replace, "");
+ else { /* First line key, etc. */
do_early_abort();
replace_abort();
if (i == 2)
replaceall = 1;
- copy = replace_line();
- if (!copy) {
- statusbar("Replace failed: unknown subexpression!");
- replace_abort();
+ copy = replace_line();
+ if (!copy) {
+ statusbar("Replace failed: unknown subexpression!");
+ replace_abort();
return 0;
- }
+ }
/* Cleanup */
free(current->data);
{
#ifdef HAVE_REGEX_H
if (ISSET(USE_REGEXP)) {
- int result=regexec(&search_regexp, haystack, 10, regmatches, 0);
- if (!result)
- return haystack+regmatches[0].rm_so;
- return 0;
- }
+ int result = regexec(&search_regexp, haystack, 10, regmatches, 0);
+ if (!result)
+ return haystack + regmatches[0].rm_so;
+ return 0;
+ }
#endif
if (ISSET(CASE_SENSITIVE))
return strstr(haystack, needle);
}
/* Append a new magic-line to filebot */
-void new_magicline(void) {
+void new_magicline(void)
+{
filebot->next = nmalloc(sizeof(filestruct));
filebot->next->data = nmalloc(1);
filebot->next->data[0] = '\0';
xend = strlen(buf) + strlen(inputbuf);
switch (kbinput) {
- /* Stuff we want to equate with <enter>, ASCII 13 */
- case 343:
+ /* Stuff we want to equate with <enter>, ASCII 13 */
+ case 343:
ungetch(13); /* Enter on iris-ansi $TERM, sometimes */
break;
#ifndef NANO_SMALL
/* There are quite a few cases that could take place, we'll deal
* with them each in turn */
- if (ISSET(MARK_ISSET)
+ if (ISSET(MARK_ISSET)
&& !((fileptr->lineno > mark_beginbuf->lineno
- && fileptr->lineno > current->lineno)
- || (fileptr->lineno < mark_beginbuf->lineno
- && fileptr->lineno < current->lineno)))
- {
- /* If we get here we are on a line that is atleast
- * partially selected. The lineno checks above determined
- * that */
- if (fileptr != mark_beginbuf && fileptr != current) {
- /* We are on a completely marked line, paint it all
- * inverse */
+ && fileptr->lineno > current->lineno)
+ || (fileptr->lineno < mark_beginbuf->lineno
+ && fileptr->lineno < current->lineno))) {
+ /* If we get here we are on a line that is atleast
+ * partially selected. The lineno checks above determined
+ * that */
+ if (fileptr != mark_beginbuf && fileptr != current) {
+ /* We are on a completely marked line, paint it all
+ * inverse */
+ wattron(edit, A_REVERSE);
+ mvwaddnstr(edit, yval, 0, fileptr->data, COLS);
+ wattroff(edit, A_REVERSE);
+ } else if (fileptr == mark_beginbuf && fileptr == current) {
+ /* Special case, we're still on the same line we started
+ * marking -- so we call our helper function */
+ if (virt_cur_x < virt_mark_beginx) {
+ /* To the right of us is marked */
+ add_marked_sameline(virt_cur_x, virt_mark_beginx,
+ fileptr, yval, virt_cur_x, this_page);
+ } else {
+ /* To the left of us is marked */
+ add_marked_sameline(virt_mark_beginx, virt_cur_x,
+ fileptr, yval, virt_cur_x, this_page);
+ }
+ } else if (fileptr == mark_beginbuf) {
+ /*
+ * we're updating the line that was first marked
+ * but we're not currently on it. So we want to
+ * figur out which half to invert based on our
+ * relative line numbers.
+ *
+ * i.e. If we're above the "beginbuf" line, we want to
+ * mark the left side. Otherwise we're below, so we
+ * mark the right
+ */
+ int target;
+
+ if (mark_beginbuf->lineno > current->lineno)
wattron(edit, A_REVERSE);
- mvwaddnstr(edit, yval, 0, fileptr->data, COLS);
+
+ target =
+ (virt_mark_beginx <
+ COLS - 1) ? virt_mark_beginx : COLS - 1;
+
+ mvwaddnstr(edit, yval, 0, fileptr->data, target);
+
+ if (mark_beginbuf->lineno < current->lineno)
+ wattron(edit, A_REVERSE);
+ else
+ wattroff(edit, A_REVERSE);
+
+ target = (COLS - 1) - virt_mark_beginx;
+ if (target < 0)
+ target = 0;
+
+ mvwaddnstr(edit, yval, virt_mark_beginx,
+ &fileptr->data[virt_mark_beginx], target);
+
+ if (mark_beginbuf->lineno < current->lineno)
+ wattroff(edit, A_REVERSE);
+
+ } else if (fileptr == current) {
+ /* we're on the cursors line, but it's not the first
+ * one we marked. Similar to the previous logic. */
+ int this_page_start = get_page_start_virtual(this_page),
+ this_page_end = get_page_end_virtual(this_page);
+
+ if (mark_beginbuf->lineno < current->lineno)
+ wattron(edit, A_REVERSE);
+
+ if (virt_cur_x > COLS - 2) {
+ mvwaddnstr(edit, yval, 0,
+ &fileptr->data[this_page_start],
+ virt_cur_x - this_page_start);
+ } else {
+ mvwaddnstr(edit, yval, 0, fileptr->data, virt_cur_x);
+ }
+
+ if (mark_beginbuf->lineno > current->lineno)
+ wattron(edit, A_REVERSE);
+ else
wattroff(edit, A_REVERSE);
- } else if (fileptr == mark_beginbuf && fileptr == current) {
- /* Special case, we're still on the same line we started
- * marking -- so we call our helper function */
- if (virt_cur_x < virt_mark_beginx) {
- /* To the right of us is marked */
- add_marked_sameline(virt_cur_x, virt_mark_beginx,
- fileptr, yval, virt_cur_x,
- this_page);
- } else {
- /* To the left of us is marked */
- add_marked_sameline(virt_mark_beginx, virt_cur_x,
- fileptr, yval, virt_cur_x,
- this_page);
- }
- } else if (fileptr == mark_beginbuf) {
- /*
- * we're updating the line that was first marked
- * but we're not currently on it. So we want to
- * figur out which half to invert based on our
- * relative line numbers.
- *
- * i.e. If we're above the "beginbuf" line, we want to
- * mark the left side. Otherwise we're below, so we
- * mark the right
- */
- int target;
-
- if (mark_beginbuf->lineno > current->lineno)
- wattron(edit, A_REVERSE);
-
- target =
- (virt_mark_beginx <
- COLS - 1) ? virt_mark_beginx : COLS - 1;
-
- mvwaddnstr(edit, yval, 0, fileptr->data, target);
-
- if (mark_beginbuf->lineno < current->lineno)
- wattron(edit, A_REVERSE);
- else
- wattroff(edit, A_REVERSE);
-
- target = (COLS - 1) - virt_mark_beginx;
- if (target < 0)
- target = 0;
-
- mvwaddnstr(edit, yval, virt_mark_beginx,
- &fileptr->data[virt_mark_beginx], target);
-
- if (mark_beginbuf->lineno < current->lineno)
- wattroff(edit, A_REVERSE);
-
- } else if (fileptr == current) {
- /* we're on the cursors line, but it's not the first
- * one we marked. Similar to the previous logic. */
- int this_page_start = get_page_start_virtual(this_page),
- this_page_end = get_page_end_virtual(this_page);
-
- if (mark_beginbuf->lineno < current->lineno)
- wattron(edit, A_REVERSE);
-
- if (virt_cur_x > COLS - 2) {
- mvwaddnstr(edit, yval, 0,
- &fileptr->data[this_page_start],
- virt_cur_x - this_page_start);
- } else {
- mvwaddnstr(edit, yval, 0, fileptr->data, virt_cur_x);
- }
- if (mark_beginbuf->lineno > current->lineno)
- wattron(edit, A_REVERSE);
- else
- wattroff(edit, A_REVERSE);
-
- if (virt_cur_x > COLS - 2)
- mvwaddnstr(edit, yval, virt_cur_x - this_page_start,
- &fileptr->data[virt_cur_x],
- this_page_end - virt_cur_x);
- else
- mvwaddnstr(edit, yval, virt_cur_x,
- &fileptr->data[virt_cur_x],
- COLS - virt_cur_x);
-
- if (mark_beginbuf->lineno > current->lineno)
- wattroff(edit, A_REVERSE);
+ if (virt_cur_x > COLS - 2)
+ mvwaddnstr(edit, yval, virt_cur_x - this_page_start,
+ &fileptr->data[virt_cur_x],
+ this_page_end - virt_cur_x);
+ else
+ mvwaddnstr(edit, yval, virt_cur_x,
+ &fileptr->data[virt_cur_x], COLS - virt_cur_x);
+
+ if (mark_beginbuf->lineno > current->lineno)
+ wattroff(edit, A_REVERSE);
}
} else
#endif
- /* Just paint the string (no mark on this line) */
+ /* Just paint the string (no mark on this line) */
mvwaddnstr(edit, yval, 0, &fileptr->data[start],
get_page_end_virtual(this_page) - start);
}
virt_cur_x--;
if (i < mark_beginx)
virt_mark_beginx--;
- }
- else if (realdata[i] >= 1 && realdata[i] <= 26) {
- /* Treat control characters as ^letter */
+ } else if (realdata[i] >= 1 && realdata[i] <= 26) {
+ /* Treat control characters as ^letter */
fileptr->data[pos++] = '^';
fileptr->data[pos++] = realdata[i] + 64;
} else {
}
/* If noloop == 1, then we already did an edit_update without finishing
this function. So we don't run edit_update again */
- if (!currentcheck && !noloop) /* Then current has run off the screen... */
- {
+ if (!currentcheck && !noloop) { /* Then current has run off the screen... */
edit_update(current, CENTER);
noloop = 1;
- }
- else if (noloop)
+ } else if (noloop)
noloop = 0;
if (lines <= editwinrows - 1)
return;
temp = fileptr;
- if (topmidbot == 2)
- ;
+ if (topmidbot == 2);
else if (topmidbot == 0)
for (i = 0; i <= editwinrows - 1 && temp->prev != NULL; i++)
temp = temp->prev;
}
if (i > 1) {
-
+
}
i = 0;
}
/* Fix editbot based on the assumption that edittop is correct */
-void fix_editbot(void) {
+void fix_editbot(void)
+{
int i;
editbot = edittop;
- for(i = 0; (i <= editwinrows - 1) && (editbot->next != NULL)
- && (editbot != filebot); i++, editbot = editbot->next);
+ for (i = 0; (i <= editwinrows - 1) && (editbot->next != NULL)
+ && (editbot != filebot); i++, editbot = editbot->next);
}
-