1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743
|
/*
| 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 <signal.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <string.h>
#include <pwd.h>
#include <limits.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_UNISTD
#include <unistd.h>
#endif
#ifdef HAS_CTYPE
#include <ctype.h>
#endif
extern int eightbit; /* eight bit character flag */
#ifndef XAE
#ifdef NCURSE
#include "new_curse.h"
#else
#include <curses.h>
#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 <fcntl.h>
#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 <locale.h>
#include <nl_types.h>
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_
|