From 3a1b58412499f66c087bd012eedd069e4311c25e Mon Sep 17 00:00:00 2001 From: Thomas Cort Date: Sun, 22 Mar 2015 16:07:45 -0400 Subject: [PATCH 1/5] mined.h: remove minix/config.h include. Nothing defined there is used by mined. --- minix/commands/mined/mined.h | 1 - 1 file changed, 1 deletion(-) diff --git a/minix/commands/mined/mined.h b/minix/commands/mined/mined.h index fad5acfeb..e5031423a 100644 --- a/minix/commands/mined/mined.h +++ b/minix/commands/mined/mined.h @@ -2,7 +2,6 @@ * Mined.h * *========================================================================*/ -#include #include #include #include From 9c6f20f9aa01e6baf12e02cf364716a245965dde Mon Sep 17 00:00:00 2001 From: Thomas Cort Date: Sun, 22 Mar 2015 16:09:25 -0400 Subject: [PATCH 2/5] mined.h: remove unused definition, MEMORY_SIZE. --- minix/commands/mined/mined.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/minix/commands/mined/mined.h b/minix/commands/mined/mined.h index e5031423a..6be056e1e 100644 --- a/minix/commands/mined/mined.h +++ b/minix/commands/mined/mined.h @@ -53,10 +53,6 @@ extern char *pos_string; /* Absolute cursor positioning */ #define STD_OUT 1 /* File descriptor for terminal */ -#if defined(__i386__) -#define MEMORY_SIZE (50 * 1024) /* Size of data space to malloc */ -#endif - #define REPORT 2 /* Report change of lines on # lines */ typedef int FLAG; From 6f8b1c32737e18a4ed941fd9d11b0c3a6e120d85 Mon Sep 17 00:00:00 2001 From: Thomas Cort Date: Sun, 22 Mar 2015 16:10:17 -0400 Subject: [PATCH 3/5] mined.h: remove irrlevant comment. It used to refer to several NIL_* definitions. Those were removed in commit 6e25ad8b0a5606fc9351824adf9034d2ef7f7293 leaving the comment with nothing to comment on. --- minix/commands/mined/mined.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/minix/commands/mined/mined.h b/minix/commands/mined/mined.h index 6be056e1e..18e49a190 100644 --- a/minix/commands/mined/mined.h +++ b/minix/commands/mined/mined.h @@ -122,8 +122,6 @@ struct regex { typedef struct regex REGEX; -/* NULL definitions */ - /* * Forward declarations */ From 82a153fa1155248043f2303ae1fcc6bbe0d3d266 Mon Sep 17 00:00:00 2001 From: Thomas Cort Date: Sun, 22 Mar 2015 16:14:51 -0400 Subject: [PATCH 4/5] mined1.c: remove i386 guard around escape sequences. The escape sequences for the function keys used to be separated out in older versions of Minix when they were different for m68k and intel. Support for m68k was dropped and that code was removed, leaving the ifdef i386. Since the sequences are the same for i386 and arm, there is no need to keep the ifdef i386. --- minix/commands/mined/mined1.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/minix/commands/mined/mined1.c b/minix/commands/mined/mined1.c index 092a79199..8bb881dee 100644 --- a/minix/commands/mined/mined1.c +++ b/minix/commands/mined/mined1.c @@ -1502,7 +1502,6 @@ void (*escfunc(int c))(void) case 'B': return(DN); case 'C': return(RT); case 'D': return(LF); -#if defined(__i386__) case '@': return(MA); case 'G': return(FS); case 'S': return(SR); @@ -1510,7 +1509,6 @@ void (*escfunc(int c))(void) case 'U': return(PD); case 'V': return(PU); case 'Y': return(EF); -#endif } return(I); } From 59f18d453132f08afd81640ddef0b587d5ac444b Mon Sep 17 00:00:00 2001 From: Thomas Cort Date: Sun, 22 Mar 2015 16:29:04 -0400 Subject: [PATCH 5/5] mined: clean-up trailing whitespace. --- minix/commands/mined/mined1.c | 116 +++++++++++++++++----------------- minix/commands/mined/mined2.c | 58 ++++++++--------- 2 files changed, 87 insertions(+), 87 deletions(-) diff --git a/minix/commands/mined/mined1.c b/minix/commands/mined/mined1.c index 8bb881dee..154d6c7e8 100644 --- a/minix/commands/mined/mined1.c +++ b/minix/commands/mined/mined1.c @@ -4,15 +4,15 @@ /* * Author: Michiel Huisjes. - * + * * 1. General remarks. - * + * * Mined is a screen editor designed for the MINIX operating system. * It is meant to be used on files not larger than 50K and to be fast. * When mined starts up, it reads the file into its memory to minimize * disk access. The only time that disk access is needed is when certain * save, write or copy commands are given. - * + * * Mined has the style of Emacs or Jove, that means that there are no modes. * Each character has its own entry in an 256 pointer to function array, * which is called when that character is typed. Only ASCII characters are @@ -21,7 +21,7 @@ * inserted as well. Note that the mapping between commands and functions * called is implicit in the table. Changing the mapping just implies * changing the pointers in this table. - * + * * The display consists of SCREENMAX + 1 lines and XMAX + 1 characters. When * a line is larger (or gets larger during editing) than XBREAK characters, * the line is either shifted SHIFT_SIZE characters to the left (which means @@ -40,7 +40,7 @@ * editing. This line is usually blank or contains information mined needs * during editing. This information (or rather questions) is displayed in * reverse video. - * + * * The terminal modes are changed completely. All signals like start/stop, * interrupt etc. are unset. The only signal that remains is the quit signal. * The quit signal (^\) is the general abort signal for mined. Typing a ^\ @@ -51,19 +51,19 @@ * The session will also be aborted when an unrecoverable error occurs. E.g * when there is no more memory available. If the file has been modified, * mined will ask if the file has to be saved or not. - * If there is no more space left on the disk, mined will just give an error + * If there is no more space left on the disk, mined will just give an error * message and continue. - * + * * The number of system calls are minized. This is done to keep the editor * as fast as possible. I/O is done in SCREEN_SIZE reads/writes. Accumulated * output is also flushed at the end of each character typed. - * + * * 2. Regular expressions - * + * * Mined has a build in regular expression matcher, which is used for * searching and replace routines. A regular expression consists of a * sequence of: - * + * * 1. A normal character matching that character. * 2. A . matching any character. * 3. A ^ matching the begin of a line. @@ -73,32 +73,32 @@ * characters. A list of characters can be indicated by a '-'. So * [a-z] matches any letter of the alphabet. If the first character * after the '[' is a '^' then the set is negated (matching none of - * the characters). + * the characters). * A ']', '^' or '-' can be escaped by putting a '\' in front of it. * Of course this means that a \ must be represented by \\. * 7. If one of the expressions as described in 1-6 is followed by a * '*' than that expressions matches a sequence of 0 or more of * that expression. - * + * * Parsing of regular expression is done in two phases. In the first phase * the expression is compiled into a more comprehensible form. In the second * phase the actual matching is done. For more details see 3.6. - * - * + * + * * 3. Implementation of mined. - * + * * 3.1 Data structures. - * + * * The main data structures are as follows. The whole file is kept in a * double linked list of lines. The LINE structure looks like this: - * + * * typedef struct Line { * struct Line *next; * struct Line *prev; * char *text; * unsigned char shift_count; * } LINE; - * + * * Each line entry contains a pointer to the next line, a pointer to the * previous line and a pointer to the text of that line. A special field * shift_count contains the number of shifts (in units of SHIFT_SIZE) @@ -108,7 +108,7 @@ * that the number of characters of the line is counted and sufficient * space is allocated to store them (including a linefeed and a '\0'). * The resulting address is assigned to the text field in the structure. - * + * * A special structure is allocated and its address is assigned to the * variable header as well as the variable tail. The text field of this * structure is set to NULL. The tail->prev of this structure points @@ -122,12 +122,12 @@ * character inserted. Then the old data space (pointed to by * cur_line->text) is freed, data space for the new line is allocated and * assigned to cur_line->text. - * + * * Two global variables called x and y represent the x and y coordinates * from the cursor. The global variable nlines contains the number of * lines in the file. Last_y indicates the maximum y coordinate of the * screen (which is usually SCREENMAX). - * + * * A few strings must be initialized by hand before compiling mined. * These string are enter_string, which is printed upon entering mined, * rev_video (turn on reverse video), normal_video, rev_scroll (perform a @@ -135,13 +135,13 @@ * absolute position string to be printed for cursor motion. The #define * X_PLUS and Y_PLUS should contain the characters to be added to the * coordinates x and y (both starting at 0) to finish cursor positioning. - * + * * 3.2 Starting up. - * + * * Mined can be called with or without argument and the function * load_file () is called with these arguments. load_file () checks * if the file exists if it can be read and if it is writable and - * sets the writable flag accordingly. If the file can be read, + * sets the writable flag accordingly. If the file can be read, * load_file () reads a line from the file and stores this line into * a structure by calling install_line () and line_insert () which * installs the line into the double linked list, until the end of the @@ -149,9 +149,9 @@ * Lines are read by the function get_line (), which buffers the * reading in blocks of SCREEN_SIZE. Load_file () also initializes the * LINE *variables described above. - * + * * 3.3 Moving around. - * + * * Several commands are implemented for moving through the file. * Moving up (UP), down (DN) left (LF) and right (RT) are done by the * arrow keys. Moving one line below the screen scrolls the screen one @@ -163,12 +163,12 @@ * (HO), end of file (EF), scroll one page down (PD), scroll one page up * (PU), scroll one line down (SD), scroll one line up (SU) and move to a * certain line number (GOTO). - * Two functions called MN () and MP () each move one word further or + * Two functions called MN () and MP () each move one word further or * backwards. A word is a number of non-blanks seperated by a space, a * tab or a linefeed. - * + * * 3.4 Modifying text. - * + * * The modifying commands can be separated into two modes. The first * being inserting text, and the other deleting text. Two functions are * created for these purposes: insert () and delete (). Both are capable @@ -186,11 +186,11 @@ * before cursor (even linefeed) (DPC), delete next word (DNW), delete * previous word (DPC) and delete to end of line (if the cursor is at * a linefeed delete line) (DLN). - * + * * 3.5 Yanking. - * + * * A few utilities are provided for yanking pieces of text. The function - * MA () marks the current position in the file. This is done by setting + * MA () marks the current position in the file. This is done by setting * LINE *mark_line and char *mark_text to the current position. Yanking * of text can be done in two modes. The first mode just copies the text * from the mark to the current position (or visa versa) into a buffer @@ -207,14 +207,14 @@ * yank ()). Several things can be done with the buffer. It can be * inserted somewhere else in the file (PT) or it can be copied into * another file (WB), which will be prompted for. - * + * * 3.6 Search and replace routines. - * + * * Searching for strings and replacing strings are done by regular * expressions. For any expression the function compile () is called * with as argument the expression to compile. Compile () returns a * pointer to a structure which looks like this: - * + * * typedef struct regex { * union { * char *err_mess; @@ -224,7 +224,7 @@ * char *start_ptr; * char *end_ptr; * } REGEX; - * + * * If something went wrong during compiling (e.g. an illegal expression * was given), the function reg_error () is called, which sets the status * field to REG_ERROR and the err_mess field to the error message. If the @@ -241,7 +241,7 @@ * match was found else it returns a NULL. Line_check () takes the * same arguments, but return either MATCH or NO_MATCH. * During checking, the start_ptr and end_ptr fields of the REGEX - * structure are assigned to the start and end of the match. + * structure are assigned to the start and end of the match. * Both functions try to find a match by walking through the line * character by character. For each possibility, the function * check_string () is called with as arguments the REGEX *program and the @@ -271,9 +271,9 @@ * means substitute the match instead. An & can be escaped by a \. When * a match is found, the function substitute () will perform the * substitution. - * + * * 3.6 Miscellaneous commands. - * + * * A few commands haven't be discussed yet. These are redraw the screen * (RD) fork a shell (SH), print file status (FS), write file to disc * (WT), insert a file at current position (IF), leave editor (XT) and @@ -282,16 +282,16 @@ * file by calling ask_save (). * The function ESC () will repeat a command n times. It will prompt for * the number. Aborting the loop can be done by sending the ^\ signal. - * + * * 3.7 Utility functions. - * + * * Several functions exists for internal use. First allocation routines: * alloc (bytes) and newline () will return a pointer to free data space * if the given size. If there is no more memory available, the function * panic () is called. - * Signal handling: The only signal that can be send to mined is the + * Signal handling: The only signal that can be send to mined is the * SIGQUIT signal. This signal, functions as a general abort command. - * Mined will abort if the signal is given during the main loop. The + * Mined will abort if the signal is given during the main loop. The * function abort_mined () takes care of that. * Panic () is a function with as argument a error message. It will print * the message and the error number set by the kernel (errno) and will @@ -345,9 +345,9 @@ * of cur_line to an apropiate number according to new_x. The only thing * left to do now is to assign the new values to cur_line, cur_text, x * and y. - * + * * 4. Summary of commands. - * + * * CURSOR MOTION * up-arrow Move cursor 1 line up. At top of screen, reverse scroll * down-arrow Move cursor 1 line down. At bottom, scroll forward. @@ -359,7 +359,7 @@ * CTRL-_ Move cursor to bottom of screen * CTRL-F Forward to start of next word (even to next line) * CTRL-B Backward to first character of previous word - * + * * SCREEN MOTION * Home key Move cursor to first character of file * End key Move cursor to last character of file @@ -367,7 +367,7 @@ * PgD Scroll backward 1 page. Top line becomes bottom line * CTRL-D Scroll screen down one line (reverse scroll) * CTRL-U Scroll screen up one line (forward scroll) - * + * * MODIFYING TEXT * ASCII char Self insert character at cursor * tab Insert tab at cursor @@ -383,7 +383,7 @@ * CTRL-Y Insert the contents of the save file at current position * CTRL-Q Insert the contents of the save file into a new file * CTRL-G Insert a file at the current position - * + * * MISCELLANEOUS * CTRL-E Erase and redraw the screen * CTRL-V Visit file (read a new file); complain if old one changed @@ -401,7 +401,7 @@ */ /* ======================================================================== * - * Utilities * + * Utilities * * ======================================================================== */ #include "mined.h" @@ -440,7 +440,7 @@ void VI(void) if (modified == TRUE && ask_save() == ERRORS) return; - + /* Get new file name */ if (get_file("Visit file:", new_file) == ERRORS) return; @@ -619,7 +619,7 @@ int bottom_line(FLAG revfl, char *s1, char *s2, char *inbuf, FLAG statfl) stat_visible = FALSE; string_print(buf); - + if (inbuf != NULL) ret = input(inbuf, statfl); @@ -776,7 +776,7 @@ char *find_address(LINE *line, int x_coord, int *old_x) tx++; textp++; } - + *old_x = tx; return textp; } @@ -909,7 +909,7 @@ void display(int x_coord, int y_coord, register LINE *line, register int count) } /* - * Write_char does a buffered output. + * Write_char does a buffered output. */ int write_char(int fd, int c) { @@ -1023,7 +1023,7 @@ void bad_write(int fd) { if (fd == STD_OUT) /* Cannot write to terminal? */ exit(1); - + clear_buffer(); build_string(text_buffer, "Command aborted: %s (File incomplete)", (errno == ENOSPC || errno == -ENOSPC) ? @@ -1208,7 +1208,7 @@ char *normal_video = "\033[m"; /* String for leaving reverse video */ char *blank_line = "\033[K"; /* Clear line to end */ #endif /* UNIX */ -/* +/* * Yank variables. */ FLAG yank_status = NOT_VALID; /* Status of yank_file */ @@ -1516,7 +1516,7 @@ void (*escfunc(int c))(void) } /* - * ESC() wants a count and a command after that. It repeats the + * ESC() wants a count and a command after that. It repeats the * command count times. If a ^\ is given during repeating, stop looping and * return to main loop. */ @@ -1596,10 +1596,10 @@ int line_number(void) count++; line = line->next; } - + return count; } - + /* * Display a line telling how many chars and lines the file contains. Also tell * whether the file is readonly and/or modified. diff --git a/minix/commands/mined/mined2.c b/minix/commands/mined/mined2.c index 6a2f0701f..73059e250 100644 --- a/minix/commands/mined/mined2.c +++ b/minix/commands/mined/mined2.c @@ -3,7 +3,7 @@ */ /* ======================================================================== * - * Move Commands * + * Move Commands * * ======================================================================== */ #include "mined.h" @@ -122,7 +122,7 @@ void GOTO(void) } /* - * Scroll forward one page or to eof, whatever comes first. (Bot_line becomes + * Scroll forward one page or to eof, whatever comes first. (Bot_line becomes * top_line of display.) Try to leave the cursor on the same line. If this is * not possible, leave cursor on the line halfway the page. */ @@ -218,7 +218,7 @@ void SU(void) */ void SD(void) { - if (forward_scroll() != ERRORS) + if (forward_scroll() != ERRORS) move_to(x, (y == 0) ? 0 : y - 1); else set_cursor(x, y); @@ -382,13 +382,13 @@ void DCC(void) /* * DPC deletes the character on the left side of the cursor. If the cursor is * at the beginning of the line, the last character if the previous line is - * deleted. + * deleted. */ void DPC(void) { if (x == 0 && cur_line->prev == header) return; /* Top of file */ - + LF(); /* Move one left */ DCC(); /* Delete character under cursor */ } @@ -529,12 +529,12 @@ int insert(register LINE *line, char *location, char *string) /* Copy part of line until `location' has been reached */ while (textp != location) *bufp++ = *textp++; - + /* Insert string at this location */ while (*string != '\0') *bufp++ = *string++; *bufp = '\0'; - + if (*(string - 1) == '\n') /* Insert a new line */ (void) line_insert(line, location, length_of(location)); else /* Append last part of line */ @@ -655,7 +655,7 @@ void delete(register LINE *start_line, char *start_textp, LINE *end_line, } /* ======================================================================== * - * Yank Commands * + * Yank Commands * * ======================================================================== */ LINE *mark_line; /* For marking position. */ @@ -678,7 +678,7 @@ void PT(void) } /* - * IF() prompt for a filename and inserts the file at the current location + * IF() prompt for a filename and inserts the file at the current location * in the file. */ void IF(void) @@ -689,7 +689,7 @@ void IF(void) /* Get the file name */ if (get_file("Get and insert file:", name) != FINE) return; - + if ((fd = open(name, 0)) < 0) error("Cannot open ", name); else { @@ -709,7 +709,7 @@ void file_insert(int fd, FLAG old_pos) register int line_count = nlines; /* Nr of lines inserted */ LINE *page = cur_line; int ret = ERRORS; - + /* Get the first piece of text (might be ended with a '\n') from fd */ if (get_line(fd, line_buffer) == ERRORS) return; /* Empty file */ @@ -721,7 +721,7 @@ void file_insert(int fd, FLAG old_pos) /* Repeat getting lines (and inserting lines) until EOF is reached */ while ((ret = get_line(fd, line_buffer)) != ERRORS && ret != NO_LINE) line = line_insert(line, line_buffer, ret); - + if (ret == NO_LINE) { /* Last line read not ended by a '\n' */ line = line->next; (void) insert(line, line->text, line_buffer); @@ -766,7 +766,7 @@ void WB(void) register int cnt; /* Count check for read/write */ int ret = 0; /* Error check for write */ char file[LINE_LEN]; /* Output file */ - + /* Checkout the buffer */ if ((yank_fd = scratch_file(READ)) == ERRORS) { error("Buffer is empty.", NULL); @@ -776,7 +776,7 @@ void WB(void) /* Get file name */ if (get_file("Write buffer to file:", file) != FINE) return; - + /* Creat the new file */ if ((new_fd = creat(file, 0644)) < 0) { error("Cannot create ", file); @@ -784,7 +784,7 @@ void WB(void) } status_line("Writing ", file); - + /* Copy buffer into file */ while ((cnt = read(yank_fd, text_buffer, sizeof(text_buffer))) > 0) if (write(new_fd, text_buffer, cnt) != cnt) { @@ -802,7 +802,7 @@ void WB(void) } /* - * MA sets mark_line (mark_text) to the current line (text pointer). + * MA sets mark_line (mark_text) to the current line (text pointer). */ void MA(void) { @@ -919,7 +919,7 @@ void yank(LINE *start_line, char *start_textp, LINE *end_line, char *end_textp, /* Creat file to hold buffer */ if ((fd = scratch_file(WRITE)) == ERRORS) return; - + chars_saved = 0L; lines_saved = 0; status_line("Saving text.", NULL); @@ -1006,7 +1006,7 @@ int scratch_file(FLAG mode) } /* ======================================================================== * - * Search Routines * + * Search Routines * * ======================================================================== */ /* @@ -1020,7 +1020,7 @@ int scratch_file(FLAG mode) * characters. A list of characters can be indicated by a '-'. So * [a-z] matches any letter of the alphabet. If the first character * after the '[' is a '^' then the set is negated (matching none of - * the characters). + * the characters). * A ']', '^' or '-' can be escaped by putting a '\' in front of it. * 7. If one of the expressions as described in 1-6 is followed by a * '*' than that expressions matches a sequence of 0 or more of @@ -1059,7 +1059,7 @@ REGEX *get_expression(char *message) if (get_string(message, exp_buf, FALSE) == ERRORS) return NULL; - + if (exp_buf[0] == '\0' && typed_expression[0] == '\0') { error("No previous expression.", NULL); return NULL; @@ -1115,12 +1115,12 @@ void change(char *message, FLAG file) copy_string(mess_buf, message); if ((program = get_expression(mess_buf)) == NULL) return; - + /* Get substitution pattern */ build_string(mess_buf, "%s %s by:", mess_buf, typed_expression); if (get_string(mess_buf, replacement, FALSE) == ERRORS) return; - + set_cursor(0, ymax); flush(); /* Substitute until end of file */ @@ -1165,7 +1165,7 @@ void change(char *message, FLAG file) /* * Substitute() replaces the match on this line by the substitute pattern - * as indicated by the program. Every '&' in the replacement is replaced by + * as indicated by the program. Every '&' in the replacement is replaced by * the original match. A \ in the replacement escapes the next character. */ char *substitute(LINE *line, REGEX *program, char *replacement) @@ -1180,7 +1180,7 @@ char *substitute(LINE *line, REGEX *program, char *replacement) /* Copy part of line until the beginning of the match */ while (linep != program->start_ptr) *textp++ = *linep++; - + /* * Replace the match by the substitution pattern. Each occurrence of '&' is * replaced by the original match. A \ escapes the next character. @@ -1326,7 +1326,7 @@ void finished(register REGEX *program, int *last_exp) } /* - * Compile compiles the pattern into a more comprehensible form and returns a + * Compile compiles the pattern into a more comprehensible form and returns a * REGEX structure. If something went wrong, the status field of the structure * is set to REG_ERROR and an error message is set into the err_mess field of * the union. If all went well the expression is saved and the expression @@ -1401,7 +1401,7 @@ void compile(register char *pattern, REGEX *program) * the list. * The opcode consists of BRACKET and if necessary * NEGATE to indicate that the list should be negated - * and/or STAR to indicate a number of sequence of this + * and/or STAR to indicate a number of sequence of this * list. * The lower byte contains the length of the list. */ @@ -1466,7 +1466,7 @@ void compile(register char *pattern, REGEX *program) } /* - * Match gets as argument the program, pointer to place in current line to + * Match gets as argument the program, pointer to place in current line to * start from and the method to search for (either FORWARD or REVERSE). * Match() will look through the whole file until a match is found. * NULL is returned if no match could be found. @@ -1557,7 +1557,7 @@ int line_check(register REGEX *program, char *string, FLAG method) * is found during matching, then the begin position of the string is marked * and the maximum number of matches is performed. Then the function star() * is called which starts to finish the match from this position of the string - * (and expression). Check() return MATCH for a match, NO_MATCH is the string + * (and expression). Check() return MATCH for a match, NO_MATCH is the string * couldn't be matched or REG_ERROR for an illegal opcode in expression. */ int check_string(REGEX *program, register char *string, int *expression) @@ -1607,7 +1607,7 @@ int check_string(REGEX *program, register char *string, int *expression) default : panic("Corrupted program in check_string()"); } - if (star_fl) + if (star_fl) return star(program, mark, string, expression); } if (*expression & DONE) {