From owner-svn-src-all@FreeBSD.ORG Tue May 26 21:06:52 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2314F106564A; Tue, 26 May 2009 21:06:52 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 110648FC1C; Tue, 26 May 2009 21:06:52 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4QL6p35073703; Tue, 26 May 2009 21:06:51 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4QL6p6n073700; Tue, 26 May 2009 21:06:51 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <200905262106.n4QL6p6n073700@svn.freebsd.org> From: Ed Schouten Date: Tue, 26 May 2009 21:06:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192856 - in head: contrib/ee usr.bin/ee usr.bin/ee/nls/en_US.US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 21:06:52 -0000 Author: ed Date: Tue May 26 21:06:51 2009 New Revision: 192856 URL: http://svn.freebsd.org/changeset/base/192856 Log: Merge local changes to ee(1) into contrib space. The source file, manual page and English translation are now directly obtained from the contrib/ directory. This makes it a lot easier to merge a newer version of ee(1) into the tree. Thanks to: des and jhb Deleted: head/usr.bin/ee/Artistic head/usr.bin/ee/FREEBSD-upgrade head/usr.bin/ee/README head/usr.bin/ee/ee.1 head/usr.bin/ee/ee.c head/usr.bin/ee/ee.i18n.guide head/usr.bin/ee/nls/en_US.US-ASCII/ Modified: head/contrib/ee/ee.c (contents, props changed) head/contrib/ee/ee.msg (contents, props changed) head/usr.bin/ee/Makefile Modified: head/contrib/ee/ee.c ============================================================================== --- head/contrib/ee/ee.c Tue May 26 20:57:19 2009 (r192855) +++ head/contrib/ee/ee.c Tue May 26 21:06:51 2009 (r192856) @@ -53,6 +53,9 @@ | */ +#include +__FBSDID("$FreeBSD$"); + char *ee_copyright_message = "Copyright (c) 1986, 1990, 1991, 1992, 1993, 1994, 1995, 1996 Hugh Mahon "; @@ -66,39 +69,37 @@ char *version = "@(#) ee, version 1.4.1 #ifdef NCURSE #include "new_curse.h" +#elif HAS_NCURSES +#include #else #include #endif -#include +#ifdef HAS_CTYPE +#include +#endif +#include +#include #include +#include +#include +#include #include #include -#include -#include -#include - #ifdef HAS_SYS_WAIT #include #endif - -#ifdef HAS_STDLIB -#include -#endif - #ifdef HAS_STDARG #include #endif - +#ifdef HAS_STDLIB +#include +#endif +#include #ifdef HAS_UNISTD #include #endif -#ifdef HAS_CTYPE -#include -#endif - - #ifndef NO_CATGETS #include #include @@ -202,8 +203,11 @@ unsigned char *d_char; /* deleted chara unsigned char *d_word; /* deleted word */ unsigned char *d_line; /* deleted line */ char in_string[513]; /* buffer for reading a file */ -unsigned char *print_command = "lp"; /* string to use for the print command */ +unsigned char *print_command = "lpr"; /* string to use for the print command */ unsigned char *start_at_line = NULL; /* move to this line at start of session*/ +const char count_text_default[] = "==============================================================================="; +int count_text_len = sizeof(count_text_default); /* length of the line above */ +char count_text[sizeof(count_text_default)]; /* buffer for current position display */ int in; /* input character */ FILE *temp_fp; /* temporary file pointer */ @@ -219,6 +223,7 @@ WINDOW *com_win; WINDOW *text_win; WINDOW *help_win; WINDOW *info_win; +WINDOW *count_win; #if defined(__STDC__) || defined(__cplusplus) #define P_(s) s @@ -298,7 +303,7 @@ void finish P_((void)); int quit P_((int noverify)); void edit_abort P_((int arg)); void delete_text P_((void)); -int write_file P_((char *file_name)); +int write_file P_((char *file_name, int warn_if_exists)); int search P_((int display_message)); void search_prompt P_((void)); void del_char P_((void)); @@ -339,6 +344,7 @@ char *is_in_string P_((char *string, cha char *resolve_name P_((char *name)); int restrict_mode P_((void)); int unique_test P_((char *string, char *list[])); +void renumber_lines P_((struct text *firstline, int startnumber)); void strings_init P_((void)); #undef P_ @@ -535,28 +541,23 @@ char *more_above_str, *more_below_str; char *chinese_cmd, *nochinese_cmd; -#ifndef __STDC__ -#ifndef HAS_STDLIB -extern char *malloc(); -extern char *realloc(); -extern char *getenv(); -FILE *fopen(); /* declaration for open function */ -#endif /* HAS_STDLIB */ -#endif /* __STDC__ */ int main(argc, argv) /* beginning of main program */ int argc; char *argv[]; { - int counter; - - for (counter = 1; counter < 24; counter++) - signal(counter, SIG_IGN); + /* Always read from (and write to) a terminal. */ + if (!isatty(STDIN_FILENO) || !isatty(STDOUT_FILENO)) { + fprintf(stderr, "ee's standard input and output must be a terminal\n"); + exit(1); + } signal(SIGCHLD, SIG_DFL); signal(SIGSEGV, SIG_DFL); signal(SIGINT, edit_abort); + signal(SIGHUP, edit_abort); + d_char = malloc(3); /* provide a buffer for multi-byte chars */ d_word = malloc(150); *d_word = (char) NULL; @@ -577,7 +578,7 @@ char *argv[]; scr_pos =0; scr_vert = 0; scr_horz = 0; - bit_bucket = fopen("/dev/null", "w"); + bit_bucket = fopen(_PATH_DEVNULL, "w"); edit = TRUE; gold = case_sen = FALSE; shell_fork = TRUE; @@ -608,10 +609,23 @@ char *argv[]; while(edit) { - wrefresh(text_win); + if (info_window) + { + snprintf(count_text, count_text_len, "L: %d C: %d %s", \ + curr_line->line_number, scr_horz + 1, count_text_default); + wmove(count_win, 0, 0); + if (!nohighlight) + wstandout(count_win); + wprintw(count_win, count_text); + wstandend(count_win); + wnoutrefresh(count_win); + } + + wnoutrefresh(text_win); + doupdate(); in = wgetch(text_win); if (in == -1) - exit(0); + continue; resize_check(); @@ -810,6 +824,7 @@ int disp; if (temp_buff->next_line != NULL) temp_buff->next_line->prev_line = curr_line; curr_line->next_line = temp_buff->next_line; + renumber_lines(curr_line->next_line, curr_line->line_number + 1); temp2 = temp_buff->line; if (in == 8) { @@ -943,13 +958,13 @@ int column; } else { - waddch(window, (char)character ); + waddch(window, (unsigned char)character ); return(1); } } else { - waddch(window, (char)character); + waddch(window, (unsigned char)character); return(1); } for (i2 = 0; (string[i2] != (char) NULL) && (((column+i2+1)-horiz_offset) < last_col); i2++) @@ -1054,8 +1069,8 @@ int disp; temp_nod->line = extra= malloc(10); temp_nod->line_length = 1; temp_nod->max_length = 10; - temp_nod->line_number = curr_line->line_number + 1; temp_nod->next_line = curr_line->next_line; + renumber_lines(temp_nod, curr_line->line_number + 1); if (temp_nod->next_line != NULL) temp_nod->next_line->prev_line = temp_nod; temp_nod->prev_line = curr_line; @@ -1507,8 +1522,10 @@ function_key() /* process function ke left(TRUE); else if (in == KEY_RIGHT) right(TRUE); - else if ( in == KEY_HOME) - top(); + else if (in == KEY_HOME) + bol(); + else if (in == KEY_END) + eol(); else if ( in == KEY_UP) up(); else if (in == KEY_DOWN) @@ -1674,7 +1691,7 @@ char *cmd_str1; cmd_str = cmd_str2 = get_string(file_write_prompt_str, TRUE); } tmp_file = resolve_name(cmd_str); - write_file(tmp_file); + write_file(tmp_file, 1); if (tmp_file != cmd_str) free(tmp_file); } @@ -1855,7 +1872,7 @@ int advance; /* if true, skip leading s esc_flag = FALSE; in = wgetch(com_win); if (in == -1) - exit(0); + continue; if (((in == 8) || (in == 127) || (in == KEY_BACKSPACE)) && (g_pos > 0)) { tmp_int = g_horz; @@ -1880,7 +1897,7 @@ int advance; /* if true, skip leading s esc_flag = TRUE; in = wgetch(com_win); if (in == -1) - exit(0); + continue; } *nam_str = in; g_pos++; @@ -1954,7 +1971,7 @@ char *cmd_str; int number; int i; char *ptr; - char *direction; + char *direction = NULL; struct text *t_line; ptr = cmd_str; @@ -2025,9 +2042,10 @@ char *arguments[]; { char *buff; int count; - struct files *temp_names; + struct files *temp_names = NULL; char *name; char *ptr; + int no_more_opts = FALSE; /* | see if editor was invoked as 'ree' (restricted mode) @@ -2044,7 +2062,7 @@ char *arguments[]; input_file = FALSE; recv_file = FALSE; count = 1; - while (count < numargs) + while ((count < numargs) && (!no_more_opts)) { buff = arguments[count]; if (!strcmp("-i", buff)) @@ -2073,30 +2091,38 @@ char *arguments[]; buff++; start_at_line = buff; } - + else if (!(strcmp("--", buff))) + no_more_opts = TRUE; else { - if (top_of_stack == NULL) - { - temp_names = top_of_stack = name_alloc(); - } - else - { - temp_names->next_name = name_alloc(); - temp_names = temp_names->next_name; - } - ptr = temp_names->name = malloc(strlen(buff) + 1); - while (*buff != (char) NULL) - { - *ptr = *buff; - buff++; - ptr++; - } - *ptr = (char) NULL; - temp_names->next_name = NULL; - input_file = TRUE; - recv_file = TRUE; + count--; + no_more_opts = TRUE; + } + count++; + } + while (count < numargs) + { + buff = arguments[count]; + if (top_of_stack == NULL) + { + temp_names = top_of_stack = name_alloc(); + } + else + { + temp_names->next_name = name_alloc(); + temp_names = temp_names->next_name; } + ptr = temp_names->name = malloc(strlen(buff) + 1); + while (*buff != (char) NULL) + { + *ptr = *buff; + buff++; + ptr++; + } + *ptr = (char) NULL; + temp_names->next_name = NULL; + input_file = TRUE; + recv_file = TRUE; count++; } } @@ -2292,8 +2318,8 @@ int *append; /* TRUE if must append more if (!(*append)) /* if not append to current line, insert new one */ { tline = txtalloc(); /* allocate data structure for next line */ - tline->line_number = curr_line->line_number + 1; tline->next_line = curr_line->next_line; + renumber_lines(tline, curr_line->line_number + 1); tline->prev_line = curr_line; curr_line->next_line = tline; if (tline->next_line != NULL) @@ -2372,7 +2398,7 @@ finish() /* prepare to exit edit session file_name = tmp_file; } - if (write_file(file_name)) + if (write_file(file_name, 1)) { text_changes = FALSE; quit(0); @@ -2412,6 +2438,7 @@ int noverify; recv_file = TRUE; input_file = TRUE; check_fp(); + text_changes = FALSE; } return(0); } @@ -2448,8 +2475,9 @@ delete_text() } int -write_file(file_name) +write_file(file_name, warn_if_exists) char *file_name; +int warn_if_exists; { char cr; char *tmp_point; @@ -2459,7 +2487,8 @@ char *file_name; int write_flag = TRUE; charac = lines = 0; - if ((in_file_name == NULL) || strcmp(in_file_name, file_name)) + if (warn_if_exists && + ((in_file_name == NULL) || strcmp(in_file_name, file_name))) { if ((temp_fp = fopen(file_name, "r"))) { @@ -3125,9 +3154,8 @@ char *string; /* string containing user } for (value = 1; value < 24; value++) signal(value, SIG_DFL); - execl(path, last_slash, "-c", string, NULL); - printf(exec_err_msg, path); - exit(-1); + execl(path, last_slash, "-c", string, (char *)NULL); + errx(1, exec_err_msg, path); } else /* if the parent */ { @@ -3170,7 +3198,7 @@ char *string; /* string containing user } if (shell_fork) { - printf(continue_msg); + printf("%s", continue_msg); fflush(stdout); while ((in = getchar()) != '\n') ; @@ -3230,9 +3258,12 @@ set_up_term() /* set up the terminal fo if (info_window) { info_type = CONTROL_KEYS; - info_win = newwin(6, COLS, 0, 0); + info_win = newwin(5, COLS, 0, 0); werase(info_win); paint_info_win(); + count_win = newwin(1, COLS, 5, 0); + leaveok(count_win, TRUE); + wrefresh(count_win); } last_col = COLS - 1; @@ -3257,6 +3288,7 @@ resize_check() delwin(text_win); delwin(com_win); delwin(help_win); + delwin(count_win); set_up_term(); redraw(); wrefresh(text_win); @@ -3274,7 +3306,7 @@ struct menu_entries menu_list[]; int counter; int length; int input; - int temp; + int temp = 0; int list_size; int top_offset; /* offset from top where menu items start */ int vert_pos; /* vertical position */ @@ -3356,10 +3388,7 @@ struct menu_entries menu_list[]; wmove(temp_win, (counter + top_offset - off_start), 3); wrefresh(temp_win); - in = wgetch(temp_win); - input = in; - if (input == -1) - exit(0); + input = wgetch(temp_win); if (((tolower(input) >= 'a') && (tolower(input) <= 'z')) || ((input >= '0') && (input <= '9'))) @@ -3602,8 +3631,6 @@ help() wprintw(com_win, press_any_key_msg); wrefresh(com_win); counter = wgetch(com_win); - if (counter == -1) - exit(0); werase(com_win); wmove(com_win, 0, 0); werase(help_win); @@ -3631,11 +3658,6 @@ paint_info_win() else if (info_type == COMMANDS) waddstr(info_win, command_strings[counter]); } - wmove(info_win, 5, 0); - if (!nohighlight) - wstandout(info_win); - waddstr(info_win, "==============================================================================="); - wstandend(info_win); wrefresh(info_win); } @@ -3669,12 +3691,15 @@ create_info_window() idlok(text_win, TRUE); werase(text_win); info_window = TRUE; - info_win = newwin(6, COLS, 0, 0); + info_win = newwin(5, COLS, 0, 0); werase(info_win); info_type = CONTROL_KEYS; midscreen(min(scr_vert, last_line), point); clearok(info_win, TRUE); paint_info_win(); + count_win = newwin(1, COLS, 5, 0); + leaveok(count_win, TRUE); + wrefresh(count_win); wrefresh(text_win); clear_com_win = TRUE; } @@ -3705,7 +3730,7 @@ int arg; { string = get_string(file_write_prompt_str, TRUE); tmp_file = resolve_name(string); - write_file(tmp_file); + write_file(tmp_file, 1); if (tmp_file != string) free(tmp_file); free(string); @@ -3742,7 +3767,7 @@ int arg; string = tmp_file; } } - if (write_file(string)) + if (write_file(string, 1)) { in_file_name = string; text_changes = FALSE; @@ -4051,7 +4076,7 @@ Format() /* format the paragraph accordi } unsigned char *init_name[3] = { - "/usr/local/lib/init.ee", + "/usr/share/misc/init.ee", NULL, ".init.ee" }; @@ -4068,6 +4093,8 @@ ee_init() /* check for init file and rea int temp_int; string = getenv("HOME"); + if (!string) + string = "/root"; /* Set to reasonable default so we don't crash */ str1 = home = malloc(strlen(string)+10); strcpy(home, string); strcat(home, "/.init.ee"); @@ -4353,17 +4380,25 @@ spell_op() /* check spelling of words in void ispell_op() { - char name[128]; + char template[128], *name; char string[256]; - int pid; + int fd; if (restrict_mode()) { return; } - pid = getpid(); - sprintf(name, "/tmp/ee.%d", pid); - if (write_file(name)) + (void)sprintf(template, "/tmp/ee.XXXXXXXX"); + name = mktemp(&template[0]); + fd = open(name, O_CREAT | O_EXCL | O_RDWR, 0600); + if (fd < 0) { + wmove(com_win, 0, 0); + wprintw(com_win, create_file_fail_msg, name); + wrefresh(com_win); + return; + } + close(fd); + if (write_file(name, 0)) { sprintf(string, "ispell %s", name); sh_command(string); @@ -4961,6 +4996,19 @@ char *list[]; return(num_match); } +void +renumber_lines(firstline, startnumber) +struct text *firstline; +int startnumber; +{ + struct text *lineptr; + int i; + + i = startnumber; + for (lineptr = firstline; lineptr != NULL; lineptr = lineptr->next_line) + lineptr->line_number = i++; +} + #ifndef NO_CATGETS /* | Get the catalog entry, and if it got it from the catalog, @@ -5001,7 +5049,7 @@ strings_init() #ifndef NO_CATGETS setlocale(LC_ALL, ""); - catalog = catopen("ee", 0); + catalog = catopen("ee", NL_CAT_LOCALE); #endif /* NO_CATGETS */ modes_menu[0].item_string = catgetlocal( 1, "modes menu"); @@ -5047,7 +5095,7 @@ strings_init() help_text[6] = catgetlocal( 41, "^f undelete char ^n next page ^x search "); help_text[7] = catgetlocal( 42, "^g begin of line ^o end of line ^y delete line "); help_text[8] = catgetlocal( 43, "^h backspace ^p prev page ^z undelete line "); - help_text[9] = catgetlocal( 44, "^[ (escape) menu "); + help_text[9] = catgetlocal( 44, "^[ (escape) menu ESC-Enter: exit ee "); help_text[10] = catgetlocal( 45, " "); help_text[11] = catgetlocal( 46, "Commands: "); help_text[12] = catgetlocal( 47, "help : get this info file : print file name "); @@ -5064,7 +5112,7 @@ strings_init() control_keys[1] = catgetlocal( 58, "^a ascii code ^x search ^z undelete line ^d down ^n next page "); control_keys[2] = catgetlocal( 59, "^b bottom of text ^g begin of line ^w delete word ^l left "); control_keys[3] = catgetlocal( 60, "^t top of text ^o end of line ^v undelete word ^r right "); - control_keys[4] = catgetlocal( 61, "^c command ^k delete char ^f undelete char "); + control_keys[4] = catgetlocal( 61, "^c command ^k delete char ^f undelete char ESC-Enter: exit ee "); command_strings[0] = catgetlocal( 62, "help : get help info |file : print file name |line : print line # "); command_strings[1] = catgetlocal( 63, "read : read a file |char : ascii code of char |0-9 : go to line \"#\""); command_strings[2] = catgetlocal( 64, "write: write a file |case : case sensitive search |exit : leave and save "); @@ -5106,7 +5154,7 @@ strings_init() searching_msg = catgetlocal( 100, " ...searching"); str_not_found_msg = catgetlocal( 101, "string \"%s\" not found"); search_prompt_str = catgetlocal( 102, "search for: "); - exec_err_msg = catgetlocal( 103, "could not exec %s\n"); + exec_err_msg = catgetlocal( 103, "could not exec %s"); continue_msg = catgetlocal( 104, "press return to continue "); menu_cancel_msg = catgetlocal( 105, "press Esc to cancel"); menu_size_err_msg = catgetlocal( 106, "menu too large for window"); @@ -5154,8 +5202,8 @@ strings_init() mode_strings[7] = catgetlocal( 145, "emacs key bindings "); emacs_help_text[0] = help_text[0]; emacs_help_text[1] = catgetlocal( 146, "^a beginning of line ^i tab ^r restore word "); - emacs_help_text[2] = catgetlocal( 147, "^b back 1 char ^j undel char ^t top of text "); - emacs_help_text[3] = catgetlocal( 148, "^c command ^k delete line ^u bottom of text "); + emacs_help_text[2] = catgetlocal( 147, "^b back 1 char ^j undel char ^t begin of file "); + emacs_help_text[3] = catgetlocal( 148, "^c command ^k delete line ^u end of file "); emacs_help_text[4] = catgetlocal( 149, "^d delete char ^l undelete line ^v next page "); emacs_help_text[5] = catgetlocal( 150, "^e end of line ^m newline ^w delete word "); emacs_help_text[6] = catgetlocal( 151, "^f forward 1 char ^n next line ^x search "); @@ -5174,11 +5222,11 @@ strings_init() emacs_help_text[19] = help_text[19]; emacs_help_text[20] = help_text[20]; emacs_help_text[21] = help_text[21]; - emacs_control_keys[0] = catgetlocal( 154, "^[ (escape) menu ^y search prompt ^k delete line ^p prev li ^g prev page"); - emacs_control_keys[1] = catgetlocal( 155, "^o ascii code ^x search ^l undelete line ^n next li ^v next page"); - emacs_control_keys[2] = catgetlocal( 156, "^u end of file ^a begin of line ^w delete word ^b back 1 char "); - emacs_control_keys[3] = catgetlocal( 157, "^t top of text ^e end of line ^r restore word ^f forward 1 char "); - emacs_control_keys[4] = catgetlocal( 158, "^c command ^d delete char ^j undelete char ^z next word "); + emacs_control_keys[0] = catgetlocal( 154, "^[ (escape) menu ^y search prompt ^k delete line ^p prev line ^g prev page"); + emacs_control_keys[1] = catgetlocal( 155, "^o ascii code ^x search ^l undelete line ^n next line ^v next page"); + emacs_control_keys[2] = catgetlocal( 156, "^u end of file ^a begin of line ^w delete word ^b back char ^z next word"); + emacs_control_keys[3] = catgetlocal( 157, "^t begin of file ^e end of line ^r restore word ^f forward char "); + emacs_control_keys[4] = catgetlocal( 158, "^c command ^d delete char ^j undelete char ESC-Enter: exit"); EMACS_string = catgetlocal( 159, "EMACS"); NOEMACS_string = catgetlocal( 160, "NOEMACS"); usage4 = catgetlocal( 161, " +# put cursor at line #\n"); Modified: head/contrib/ee/ee.msg ============================================================================== --- head/contrib/ee/ee.msg Tue May 26 20:57:19 2009 (r192855) +++ head/contrib/ee/ee.msg Tue May 26 21:06:51 2009 (r192856) @@ -4,6 +4,7 @@ $ $ For ee patchlevel 3 $ $ $Header: /home/hugh/sources/old_ae/RCS/ee.msg,v 1.8 1996/11/30 03:23:40 hugh Exp $ +$ $FreeBSD$ $ $ $set 1 @@ -51,7 +52,7 @@ $quote " 41 "^f undelete char ^n next page ^x search " 42 "^g begin of line ^o end of line ^y delete line " 43 "^h backspace ^p prev page ^z undelete line " -44 "^[ (escape) menu " +44 "^[ (escape) menu ESC-Enter: exit ee " 45 " " 46 "Commands: " 47 "help : get this info file : print file name " @@ -68,7 +69,7 @@ $quote " 58 "^a ascii code ^x search ^z undelete line ^d down ^n next page " 59 "^b bottom of text ^g begin of line ^w delete word ^l left " 60 "^t top of text ^o end of line ^v undelete word ^r right " -61 "^c command ^k delete char ^f undelete char " +61 "^c command ^k delete char ^f undelete char ESC-Enter: exit ee " 62 "help : get help info |file : print file name |line : print line # " 63 "read : read a file |char : ascii code of char |0-9 : go to line \"#\"" 64 "write: write a file |case : case sensitive search |exit : leave and save " @@ -110,7 +111,7 @@ $quote " 100 " ...searching" 101 "string \"%s\" not found" 102 "search for: " -103 "could not exec %s\n" +103 "could not exec %s" 104 "press return to continue " 105 "press Esc to cancel" 106 "menu too large for window" @@ -154,8 +155,8 @@ $quote " 144 "NOEIGHTBIT" 145 "emacs key bindings " 146 "^a beginning of line ^i tab ^r restore word " -147 "^b back 1 char ^j undel char ^t top of text " -148 "^c command ^k delete line ^u bottom of text " +147 "^b back 1 char ^j undel char ^t begin of file " +148 "^c command ^k delete line ^u end of file " 149 "^d delete char ^l undelete line ^v next page " 150 "^e end of line ^m newline ^w delete word " 151 "^f forward 1 char ^n next line ^x search " @@ -164,7 +165,7 @@ $quote " 154 "^[ (escape) menu ^y search prompt ^k delete line ^p prev li ^g prev page" 155 "^o ascii code ^x search ^l undelete line ^n next li ^v next page" 156 "^u end of file ^a begin of line ^w delete word ^b back 1 char " -157 "^t top of text ^e end of line ^r restore word ^f forward 1 char " +157 "^t begin of file ^e end of line ^r restore word ^f forward 1 char " 158 "^c command ^d delete char ^j undelete char ^z next word " 159 "EMACS" 160 "NOEMACS" Modified: head/usr.bin/ee/Makefile ============================================================================== --- head/usr.bin/ee/Makefile Tue May 26 20:57:19 2009 (r192855) +++ head/usr.bin/ee/Makefile Tue May 26 21:06:51 2009 (r192856) @@ -1,5 +1,7 @@ # $FreeBSD$ +.PATH: ${.CURDIR}/../../contrib/ee + CFLAGS+= -DCAP -DHAS_NCURSES -DHAS_UNISTD -DHAS_STDARG -DHAS_STDLIB \ -DHAS_CTYPE -DHAS_SYS_IOCTL -DHAS_SYS_WAIT -DSLCT_HDR @@ -21,7 +23,11 @@ NLSLINKS_de_DE.ISO8859-1= de_AT.ISO8859- NLSSRCFILES=ee.msg .for lang in ${NLS} +. if exists(${.CURDIR}/nls/${lang}/ee.msg) NLSSRCDIR_${lang}= ${.CURDIR}/nls/${lang} +. else +NLSSRCDIR_${lang}= ${.CURDIR}/../../contrib/ee +. endif .endfor .include