/* | aee.h | | $Header: /home/hugh/sources/aee/RCS/aee.h,v 1.42 2002/07/10 04:46:36 hugh Exp $ | | Copyright (c) 1986 - 1988, 1991 - 1996, 1999, 2000, 2001 Hugh Mahon. | */ #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_UNISTD #include #endif #ifdef HAS_CTYPE #include #endif extern int eightbit; /* eight bit character flag */ #ifndef XAE #ifdef NCURSE #include "new_curse.h" #else #include #endif #else /* ifdef XAE */ #ifdef xae11 #include "Xcurse.h" #else #include "X10curse.h" #endif /* xae11 */ #endif /* XAE */ extern struct stat buf; #ifndef XAE #ifdef SYS5 /* System V specific tty operations */ extern struct termio old_term; extern struct termio new_term; #include #else extern struct sgttyb old_term; extern struct sgttyb new_term; #endif #endif /* XAE */ #ifndef SIGCHLD #define SIGCHLD SIGCLD #endif #define TAB 9 #ifdef NAME_MAX #define MAX_NAME_LEN NAME_MAX #else #define MAX_NAME_LEN 15 #endif /* NAME_MAX */ #ifndef NO_CATGETS #include #include extern nl_catd catalog; #else #define catgetlocal(a, b) (b) #endif /* NO_CATGETS */ #ifndef max #define max(a, b) ((a) > (b) ? (a) : (b)) #endif /* max */ #ifndef min #define min(a, b) ((a) < (b) ? (a) : (b)) #endif /* min */ #define Mark 1 /* mark text (don't keep previous paste buffer contents) */ #define Append 2 /* place new text into paste buffer after contents */ #define Prefix 3 /* place new text into paste buffer before contents */ extern int errno; #define NO_FURTHER_LINES 0x0 /* indicates end of data, since offset will never be zero in journal file (file name is written there, not data) */ struct ae_file_info { /* info about line in journal file */ unsigned long info_location; /* location of this info in file*/ unsigned long prev_info; /* info for previous line */ unsigned long next_info; /* info for next line */ unsigned long line_location; /* actual data in line */ /* use length of line in bytes from the text data structure below */ }; struct text { char *line; /* line of characters */ int line_number; /* line number */ int line_length; /* actual number of characters in the line (includes NULL at end of line) */ int max_length; /* maximum number of characters the line handles */ int vert_len; /* number of lines the current line occupies on the screen */ struct text *next_line; /* next line of text */ struct text *prev_line; /* previous line of text */ struct ae_file_info file_info; char changed; /* flag indicating info in line changed */ }; extern struct text *first_line; /* first line of current buffer */ extern struct text *dlt_line; /* structure for info on deleted line */ extern struct text *curr_line; /* current line cursor is on */ extern struct text *fpste_line; /* first line of select buffer */ extern struct text *cpste_line; /* current paste/select line */ extern struct text *paste_buff; /* first line of paste buffer */ extern struct text *pste_tmp; /* temporary paste pointer */ extern struct text *tmp_line; /* temporary line pointer */ extern struct text *srch_line; /* temporary pointer for search routine */ struct files { /* structure to store names of files to be edited*/ char *name; /* name of file */ struct files *next_name; }; extern struct files *top_of_stack; struct bufr { /* structure for names of buffers */ char *name; /* name of buffer */ struct text *first_line;/* pointer to first line of buffer */ struct bufr *next_buff; /* pointer to next record */ struct text *curr_line; /* pointer to the current line in buffer*/ int scr_vert; /* the last vertical value of buffer */ int scr_horz; /* the last horizontal value in buffer */ int scr_pos; /* horizontal offset from start of line */ int position; /* the last value of position in buffer */ int abs_pos; /* 'absolute' horizontal position */ char *pointer; /* the last value of point in buffer */ WINDOW *win; /* the window pointer for buffer */ WINDOW *footer; /* window containing name of window */ int lines; /* number of lines */ int last_line; /* last line visible in window */ int last_col; /* last column visible in the window */ int num_of_lines; /* number of lines of text total in buffer */ int absolute_lin; /* number of lines from top */ int window_top; /* # of lines top of window is from top of screen */ int journ_fd; /* file descriptor for journal file */ char journalling; /* flag indicating if journalling active for this buffer */ char *journal_file; /* name of journal file for this buffer */ char *file_name; /* name of file being edited */ char *full_name; /* full name of file being edited */ char changed; /* contents of the buffer have changed */ char *orig_dir; /* original directory where edit started */ char main_buffer; /* true if this is the first buffer */ char edit_buffer; /* true if created as a result of edit cmd */ char dos_file; /* true if file uses (or is to use) CR/LF instead of just LF as line terminator */ struct stat fileinfo; /* information about the file obtained using stat(2) */ }; extern struct bufr *first_buff; /* first buffer in list */ extern struct bufr *curr_buff; /* pointer to current buffer */ extern struct bufr *t_buff; /* temporary pointer for buffers */ struct tab_stops { /* structure to store tab stops */ int column; /* column for tab */ struct tab_stops *next_stop; }; extern struct tab_stops *tabs; struct del_buffs { int flag; char character; char *string; int length; struct del_buffs *prev; struct del_buffs *next; }; /* | structure for mapping journal files to file names */ struct journal_db { char *file_name; char *journal_name; struct journal_db *next; }; extern struct del_buffs *undel_first; extern struct del_buffs *undel_current; extern WINDOW *com_win; /* command window */ extern WINDOW *help_win; /* window for help facility */ extern int windows; /* flag for windows or no windows */ extern WINDOW *info_win; extern int lines_moved; /* number of lines moved in search */ extern int d_wrd_len; /* length of deleted word */ extern int value; /* temporary integer value */ extern int tmp_pos; /* temporary position */ extern int tmp_vert; /* temporary vertical position */ extern int tmp_horz; /* temporary horizontal position */ extern int repl_length; /* length of string to replace */ extern int pst_pos; /* position in cpste_line->line */ extern int gold_count; /* number of times to execute pressed key */ extern int fildes; /* file descriptor */ extern int get_fd; /* get file descriptor */ extern int write_fd; /* write file descriptor */ extern int num_of_bufs; /* the number of buffers that exist */ extern int temp_stdin; /* temporary storage for stdin */ extern int temp_stdout; /* temp storage for stdout descriptor */ extern int temp_stderr; /* temp storage for stderr descriptor */ extern int pipe_out[2]; /* pipe file desc for output */ extern int pipe_in[2]; /* pipe file descriptors for input */ extern int line_wrap; /* should line extend forever? */ extern int right_margin; /* right margin (if observ_margins = TRUE) */ extern int left_margin; /* left margin */ extern int info_type; extern int info_win_height; extern int local_LINES; /* copy of LINES, to detect when win resizes */ extern int local_COLS; /* copy of COLS, to detect when win resizes */ extern int bit_bucket; /* file descriptor to /dev/null */ extern int tab_spacing; /* spacing for tabs */ /* | boolean flags */ extern char mark_text; /* flag to indicate if MARK is active */ extern char journ_on; /* flag for journaling */ extern char input_file; /* indicate to read input file */ extern char recv_file; /* indicate reading a file */ extern char edit; /* continue executing while true */ extern char gold; /* 'gold' function key pressed */ extern char recover; /* set true if recover operation to occur */ extern char case_sen; /* case sensitive search flag */ extern char change; /* indicate changes have been made to file*/ extern char go_on; /* loop control for help function */ extern char clr_cmd_line; /* flag set to clear command line */ extern char literal; /* is search string to be interpreted literally? */ extern char forward; /* if TRUE, search after cursor, else search before cursor */ extern char echo_flag; /* allow/disallow echo in init file */ extern char status_line; /* place status info in the bottom line */ extern char overstrike; /* overstrike / insert mode flag */ extern char indent; /* auto-indent mode flag */ extern char expand; /* expand tabs flag */ extern char shell_fork; extern char out_pipe; /* flag that info is piped out */ extern char in_pipe; /* flag that info is piped in */ extern char observ_margins; /* should margins be observed */ extern char right_justify; /* justify right margin when formatting */ extern char free_d_line; /* free d_line (already freed from del list) */ extern char free_d_word; /* free d_word (already freed from del list) */ extern char info_window; /* is info window displayed? */ extern char auto_format; /* automatically format paragraph */ extern char formatted; /* has paragraph been formatted? */ extern char window_resize; /* flag to indicate a resize has occurred */ extern char change_dir_allowed; /* flag to indicate if chdir is allowed */ extern char restricted; /* flag to indicate restricted mode */ extern char com_win_initialized; extern char text_only; /* editor is to treat file being read as text only (not a binary file) */ extern char ee_mode_menu; /* make main menu look more like ee's */ #define CHAR_DELETED 1 #define CHAR_BACKSPACE 2 #define WORD_DELETED 3 #define LINE_DELETED 4 extern long mask; /* mask for sigblock */ #ifdef XAE extern int win_width; /* width and height of edit session window */ extern int win_height; extern char *xsrch_string; extern char *xold_string; extern char *xnew_string; extern Window testwin; #endif extern char in_string[513]; /* input buffer string */ extern char *pst_line; /* start of paste line */ extern char *pst_pnt; /* current position within paste line */ extern char *pste1; /* temporary pointers for cut/paste ops */ extern char *pste2; extern char *pste3; extern char *old_string; /* old string to be replaced */ extern char *u_old_string; /* upper case verson of old_string */ extern char *new_string; /* new string to insert instead of old */ extern char *srch_str; /* pointer for search string */ extern char *u_srch_str; /* pointer to non-case sensitive search */ extern char *in_file_name; /* name of input file and path */ extern char *short_file_name; /* name of input file only */ extern char *journ; /* name of journal file */ extern char *journal_dir; /* name of journal directory */ extern char *out_file; /* name of output file if not input file*/ extern char *tmp_file; /* temporary file name */ extern char d_char; /* deleted character */ extern char *d_word; /* deleted word */ extern char *d_line; /* deleted line */ extern char *term_type; /* type of terminal being used */ extern char *help_line; /* input line for help facility */ extern char *sline; /* temporary line pointer for help fac */ extern char *subject; /* subject user wants to learn about */ extern char *start_of_string; /* start of search string */ extern char match_char; /* character found by search for match */ extern char in_buff_name[128]; /* input buffer name */ extern char out_buff_name[128]; /* output buffer name */ extern char *start_at_line; /* move to this line at start of session*/ extern char *print_command; /* string to hold command for printing file */ extern char nohighlight; extern char *ctr[32]; /* control key strings */ extern char ctr_changed[32]; /* control key strings changed flags */ extern char *g_ctr[32]; /* gold control key strings */ extern char g_ctr_changed[32]; /* gold control key strings changed */ extern char *f[64]; /* function key strings */ extern char f_changed[64]; /* function key strings */ extern char *g_f[64]; /* gold function key strings */ extern char g_f_changed[64]; /* gold function key strings */ extern char *ctrl_table[]; extern char *keypads[5]; /* keypad keys from terminfo */ extern char *g_keypads[5]; /* keypad keys from terminfo */ extern char *ctrl_table[]; extern int in; /* input character */ extern FILE *fp; /* file pointer for input */ extern FILE *outp; /* pointer for output file */ extern FILE *temp_fp; /* temporary file pointer */ extern FILE *get_fp; /* read file pointer */ extern FILE *write_fp; /* write file pointer */ #define MAX_HELP_LINES 15 #define MAX_HELP_COLS 129 extern char info_data[MAX_HELP_LINES][MAX_HELP_COLS]; struct edit_keys { char *macro; char *description; short fkey, gfkey, ckey, gckey; }; extern struct edit_keys assignment[]; #define gold_key_index 65 #define READ_FILE 1 #define WRITE_FILE 2 #define SAVE_FILE 3 /* | The following structure allows menu items to be flexibly declared. | The first item is the string describing the selection, the second | is the address of the procedure to call when the item is selected, | and the third is the argument for the procedure. | | The first menu item will be the title of the menu, with NULL | parameters for the procedure and argument, followed by the menu items. | | If the 'argument' value for the menu title is 1 (MENU_WARN) the | menu is to be used to display info to the user (the message about | using Escape is not displayed). | | If the procedure value is NULL, the menu item is displayed, but no | procedure is called when the item is selected. The number of the | item will be returned. If the sixth (argument) parameter is -1, no | argument is given to the procedure when it is called. */ #if defined(__STDC__) || defined(__cplusplus) #define P_(s) s #else #define P_(s) () #endif #define MENU_WARN 1 struct menu_entries { char *item_string; int (*procedure)P_((struct menu_entries *)); struct menu_entries *ptr_argument; int (*iprocedure)P_((int)); void (*nprocedure)P_((void)); unsigned int argument; }; #undef P_ /* | allocate space here for the strings that will be in the menu */ extern struct menu_entries modes_menu[]; extern int modes_initialized; #define NUM_MODES_ITEMS 19 extern char *mode_strings[NUM_MODES_ITEMS]; extern struct menu_entries config_dump_menu[]; extern struct menu_entries leave_menu[]; extern struct menu_entries leave_menu_2[]; extern struct menu_entries file_menu[]; extern struct menu_entries search_menu[]; extern struct menu_entries spell_menu[]; extern struct menu_entries misc_menu[]; extern struct menu_entries edit_menu[]; extern struct menu_entries main_menu[]; extern struct menu_entries del_buff_menu[]; extern struct menu_entries rae_err_menu[]; extern struct menu_entries file_being_edited_menu[]; extern struct menu_entries file_modified_menu[]; #define INFO_WIN_HEIGHT_DEF 6 /* | defines for type of data to show in info window */ #define CONTROL_KEYS 1 #define COMMANDS 2 extern char *commands[71]; extern char *init_strings[41]; /* | memory debugging macros */ #ifdef DEBUG extern char *dxalloc(); extern char *drealloc(); #define xalloc(a) dxalloc(a, __LINE__) #define resiz_line(a, b, c) dresiz_line(a, b, c, __LINE__) extern FILE *error_fp; #endif /* DEBUG */ /* | declaration for localizable strings */ extern char *ae_help_file, *SL_line_str, *SL_col_str, *SL_lit_str, *SL_nolit_str; extern char *SL_fwd_str, *SL_rev_str, *SL_over_str, *SL_insrt_str, *SL_indent_str; extern char *SL_noindnt_str, *SL_marg_str, *SL_nomarg_str, *SL_mark_str, *ascii_code_str; extern char *left_err_msg, *right_err_msg, *help_err_msg, *prompt_for_more, *topic_prompt; extern char *topic_err_msg, *continue_prompt, *printing_msg, *EXPAND_str, *NOEXPAND_str; extern char *NOJUSTIFY_str, *JUSTIFY_str, *EXIT_str, *QUIT_str, *AUTOFORMAT_str; extern char *NOAUTOFORMAT_str, *INFO_str, *NOINFO_str, *TABS_str, *UNTABS_str; extern char *WRITE_str, *READ_str, *SAVE_str, *LITERAL_str, *NOLITERAL_str; extern char *STATUS_str, *NOSTATUS_str, *MARGINS_str, *NOMARGINS_str, *INDENT_str; extern char *NOINDENT_str, *OVERSTRIKE_str, *NOOVERSTRIKE_str, *LEFTMARGIN_str, *RIGHTMARGIN_str; extern char *LINE_str, *FILE_str, *COPYRIGHT_str, *CHARACTER_str, *REDRAW_str; extern char *RESEQUENCE_str, *AUTHOR_str, *VERSION_str, *CASE_str, *NOCASE_str; extern char *EIGHT_str, *NOEIGHT_str, *WINDOWS_str, *NOWINDOWS_str, *DEFINE_str; extern char *SHOW_str, *HELP_str, *PRINT_str, *BUFFER_str, *DELETE_str; extern char *GOLD_str, *tab_msg, *file_write_prompt_str, *file_read_prompt_str, *left_mrg_err_msg; extern char *right_mrg_err_msg, *left_mrg_setting, *right_mrg_setting, *line_num_str, *lines_from_top; extern char *total_lines_str, *current_file_str, *char_str, *key_def_msg, *unkn_syntax_msg; extern char *current_buff_msg, *unkn_cmd_msg, *usage_str, *read_only_msg, *no_rcvr_fil_msg; extern char *cant_opn_rcvr_fil_msg, *fin_read_file_msg, *rcvr_op_comp_msg, *file_is_dir_msg, *path_not_a_dir_msg; extern char *access_not_allowed_msg, *new_file_msg, *cant_open_msg, *bad_rcvr_msg, *reading_file_msg; extern char *file_read_lines_msg, *other_buffs_exist_msg, *changes_made_prompt, *no_write_access_msg, *file_exists_prompt; extern char *cant_creat_fil_msg, *writing_msg, *file_written_msg, *searching_msg, *fwd_srch_msg; extern char *rev_srch_msg, *str_str, *not_fnd_str, *search_prompt_str, *mark_not_actv_str; extern char *mark_active_str, *mark_alrdy_actv_str, *no_buff_named_str, *press_ret_to_cont_str, *fn_GOLD_str; extern char *fn_DL_str, *fn_DC_str, *fn_CL_str, *fn_NP_str, *fn_PP_str; extern char *fn_NB_str, *fn_PB_str, *fn_UDL_str, *fn_UDC_str, *fn_DW_str; extern char *fn_UDW_str, *fn_UND_str, *fn_EOL_str, *fn_BOL_str, *fn_BOT_str; extern char *fn_EOT_str, *fn_FORMAT_str, *fn_MARGINS_str, *fn_NOMARGINS_str, *fn_IL_str; extern char *fn_PRP_str, *fn_RP_str, *fn_MC_str, *fn_PSRCH_str, *fn_SRCH_str; extern char *fn_AL_str, *fn_AW_str, *fn_AC_str, *fn_PW_str, *fn_CUT_str; extern char *fn_FWD_str, *fn_REV_str, *fn_MARK_str, *fn_UNMARK_str, *fn_APPEND_str; extern char *fn_PREFIX_str, *fn_COPY_str, *fn_CMD_str, *fn_PST_str, *fn_RD_str; extern char *fn_UP_str, *fn_DOWN_str, *fn_LEFT_str, *fn_RIGHT_str, *fn_BCK_str; extern char *fn_CR_str, *fn_EXPAND_str, *fn_NOEXPAND_str, *fn_EXIT_str, *fn_QUIT_str; extern char *fn_LITERAL_str, *fn_NOLITERAL_str, *fn_STATUS_str, *fn_NOSTATUS_str, *fn_INDENT_str; extern char *fn_NOINDENT_str, *fn_OVERSTRIKE_str, *fn_NOOVERSTRIKE_str, *fn_CASE_str, *fn_NOCASE_str; extern char *fn_WINDOWS_str, *fn_NOWINDOWS_str, *fn_HELP_str, *fn_MENU_str, *fwd_mode_str; extern char *rev_mode_str, *ECHO_str, *cmd_prompt, *PRINTCOMMAND_str, *replace_action_prompt; extern char *replace_prompt_str, *replace_r_char, *replace_skip_char, *replace_all_char, *quit_char; extern char *yes_char, *no_char, *cant_find_match_str, *fmting_par_msg, *cancel_string; extern char *menu_too_lrg_msg, *shell_cmd_prompt, *shell_echo_msg, *spell_in_prog_msg, *left_marg_prompt; extern char *left_mrgn_err_msg, *right_mrgn_prompt, *right_mrgn_err_msg, *cant_redef_msg, *buff_msg; extern char *cant_chng_while_mark_msg, *too_many_parms_msg, *buff_is_main_msg, *cant_del_while_mark, *main_buffer_name; extern char *cant_del_buf_msg, *HIGHLIGHT_str, *NOHIGHLIGHT_str; extern char *non_unique_cmd_msg; extern char *ON, *OFF; extern char *save_file_name_prompt, *file_not_saved_msg, *cant_reopen_journ; extern char *write_err_msg, *jrnl_dir, *CD_str; extern char *no_dir_entered_msg, *path_not_dir_msg, *path_not_permitted_msg; extern char *path_chng_failed_msg, *no_chng_dir_msg, *SPACING_str, *SPACING_msg; extern char *pwd_cmd_str, *pwd_err_msg; extern char *help_file_str; extern char *no_file_string, *no_chng_no_save, *changes_made_title; extern char *save_then_delete, *dont_delete, *delete_anyway_msg; extern char *edit_cmd_str, *edit_err_msg, *restricted_msg, *rae_no_file_msg; extern char *more_above_str, *more_below_str, *recover_name_prompt; extern char *no_file_name_string, *recover_menu_title, *other_recover_file_str; extern char *info_win_height_prompt, *info_win_height_err; extern char *info_win_height_cmd_str, *info_win_height_msg_str; extern char *conf_not_saved_msg; extern char *conf_dump_err_msg; extern char *conf_dump_success_msg; extern char *info_help_msg; extern char *unix_text_msg, *dos_text_msg; extern char *text_cmd, *binary_cmd; extern char *text_msg, *binary_msg, *dos_msg, *unix_msg; extern char *file_being_edited_msg; extern char *file_modified_msg; extern char *DIFF_str; extern char *ee_mode_str; extern char *copyright_notice; extern char *version_string; extern char *main_menu_strings[10]; extern char *ee_mode_main_menu_strings[10]; /* | Declare addresses for routines referenced in menus below. */ /* --- */ #if defined(__STDC__) || defined(__cplusplus) #define P_(s) s #else #define P_(s) () #endif int main P_((int argc, char *argv[])); void get_input P_((WINDOW *win_ptr)); void status_display P_((void)); char *xalloc P_((int size)); char *resiz_line P_((int factor, struct text *rline, int rpos)); void dummy P_((int foo)); void insert P_((int character)); int scanline P_((struct text *m_line, int pos)); void tab_insert P_((void)); void unset_tab P_((char *string)); void tab_set P_((char *string)); int tabshift P_((int temp_int)); int out_char P_((WINDOW *window, int character, int abscolumn, int row, int offset)); void draw_line P_((int vertical, int horiz, char *ptr, int t_pos, struct text *dr_l)); void insert_line P_((int disp)); struct text *txtalloc P_((void)); struct files *name_alloc P_((void)); struct bufr *buf_alloc P_((void)); char *next_word P_((char *string)); int scan P_((char *line, int offset, int column)); char *get_string P_((char *prompt, int advance)); int len_char P_((int character, int column)); void ascii P_((void)); void print_buffer P_((void)); int compare P_((char *string1, char *string2, int sensitive)); void goto_line P_((char *cmd_str)); void make_win P_((void)); void no_windows P_((void)); void midscreen P_((int line, int count)); void get_options P_((int numargs, char *arguments[])); void show_pwd P_((void)); char *get_full_path P_((char *path, char *orig_path)); char *ae_basename P_((char *name)); char *ae_dirname P_((char *path)); char *buff_name_generator P_((void)); int open_for_edit P_((char *string)); void recover_op P_((void)); int check_fp P_((void)); void get_file P_((char *file_name)); void get_line P_((int length, char *in_string, int *append)); void finish P_((char *string)); int delete_all_buffers P_((void)); void quit P_((char *string)); void abort_edit P_((int foo)); int write_file P_((char *file_name)); void sh_command P_((char *string)); void redraw P_((void)); void repaint_screen P_((void)); void copy_str P_((char *str1, char *str2)); void echo_string P_((char *string)); void ae_init P_((void)); char *is_in_string P_((char *string, char *substring)); char *resolve_name P_((char *name)); int file_write_success P_((void)); int menu_op P_((struct menu_entries menu_list[])); void paint_menu P_((struct menu_entries menu_list[], int max_width, int max_height, int list_size, int top_offset, WINDOW *menu_win, int off_start, int vert_size)); void shell_op P_((void)); void leave_op P_((void)); void spell_op P_((void)); void ispell_op P_((void)); void modes_op P_((void)); void search_op P_((void)); int file_op P_((int arg)); void info_op P_((void)); int macro_assign P_((char *keys[], char *macro_string)); void get_key_assgn P_((void)); void paint_information P_((void)); void paint_info_win P_((void)); int unique_test P_((char *string, char *list[])); void command_prompt P_((void)); void tab_resize P_((void)); void command P_((char *cmd_str)); void init_keys P_((void)); void parse P_((char *string)); int restrict_mode P_((void)); void dump_aee_conf P_((void)); void del_char P_((int save_flag)); void undel_char P_((void)); char *del_string P_((int length)); void undel_string P_((char *string, int length)); void del_word P_((int save_flag)); void undel_word P_((void)); void Clear_line P_((int save_flag)); void del_line P_((int save_flag)); void undel_line P_((void)); void last_deleted P_((int flag, int length, char *string)); void undel_last P_((void)); void delete_text P_((void)); void undel_init P_((void)); int delete P_((int disp)); int Blank_Line P_((struct text *test_line)); void Format P_((void)); int first_word_len P_((struct text *test_line)); void Auto_Format P_((void)); void help P_((void)); void outfile P_((void)); void ask P_((void)); void write_journal P_((struct bufr *buffer, struct text *line)); void update_journal_entry P_((struct bufr *buffer, struct text *line)); void remove_journ_line P_((struct bufr *buffer, struct text *line)); void journ_info_init P_((struct bufr *buffer, struct text *line)); void read_journal_entry P_((struct bufr *buffer, struct text *line)); int recover_from_journal P_((struct bufr *buffer, char *file_name)); void unlock_journal_fd P_((void)); struct journal_db * read_journal_db P_((void)); int create_dir P_((char *name)); void journal_name P_((struct bufr *buffer, char *file_name)); void open_journal_for_write P_((struct bufr *buffer)); void remove_journal_file P_((struct bufr *buffer)); void control P_((void)); void function_key P_((void)); void gold_func P_((void)); void keyboard P_((void)); void def_key P_((char *string)); void strings_init P_((void)); void copy P_((void)); void paste P_((void)); void unmark_text P_((void)); void cut P_((void)); void cut_up P_((void)); void cut_down P_((void)); void cut_line P_((void)); void fast_left P_((void)); void fast_right P_((void)); void fast_line P_((char *direct)); int slct P_((int flag)); void slct_dlt P_((void)); void slct_right P_((void)); void slct_left P_((void)); void slct_line P_((char *direct)); void bottom P_((void)); void top P_((void)); void nextline P_((void)); void prevline P_((void)); void left P_((int disp)); int right P_((int disp)); void find_pos P_((void)); void up P_((void)); void down P_((void)); void adv_word P_((void)); void prev_word P_((void)); void move_rel P_((char *direction, int lines)); void eol P_((void)); void bol P_((void)); void adv_line P_((void)); void next_page P_((void)); void prev_page P_((void)); int search P_((int move_cursor, struct text *start_line, int offset, char *pointer, int s_str_off, int srch_short, int disp)); int upper P_((int value)); int search_prompt P_((int flag)); void replace P_((void)); int repl_prompt P_((int flag)); void match P_((void)); void new_screen P_((void)); struct bufr *add_buf P_((char *ident)); void chng_buf P_((char *name)); int del_buf P_((void)); void redo_win P_((void)); void resize_check P_((void)); void set_up_term P_((void)); void diff_file P_((void)); #ifdef XAE void event_init P_((void)); void event_manage P_((void)); void move_to_xy P_((int x, int y)); void eopl P_((void)); void cut_text P_((void)); void raise_window P_((void)); void set_window_name P_((char *name)); #endif /* XAE */ #undef P_