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 <sys/cdefs.h>
+__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 <ncurses.h>
 #else
 #include <curses.h>
 #endif
 
-#include <signal.h>
+#ifdef HAS_CTYPE
+#include <ctype.h>
+#endif
+#include <err.h>
+#include <errno.h>
 #include <fcntl.h>
+#include <paths.h>
+#include <pwd.h>
+#include <signal.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <errno.h>
-#include <string.h>
-#include <pwd.h>
-
 #ifdef HAS_SYS_WAIT
 #include <sys/wait.h>
 #endif
-
-#ifdef HAS_STDLIB
-#include <stdlib.h>
-#endif
-
 #ifdef HAS_STDARG
 #include <stdarg.h>
 #endif
-
+#ifdef HAS_STDLIB
+#include <stdlib.h>
+#endif
+#include <string.h>
 #ifdef HAS_UNISTD
 #include <unistd.h>
 #endif
 
-#ifdef HAS_CTYPE
-#include <ctype.h>
-#endif
-
-
 #ifndef NO_CATGETS
 #include <locale.h>
 #include <nl_types.h>
@@ -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 <bsd.prog.mk>
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to