From: David Lawrence Ramsey Date: Wed, 20 Jul 2005 21:08:38 +0000 (+0000) Subject: add miscellaneous color and openfilestruct cleanups, and move the X-Git-Tag: v1.3.9~143 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=e99494f21a08ab8155c7011669266f7e5d8d66ff;p=nano.git add miscellaneous color and openfilestruct cleanups, and move the openfilestruct functions to nano.c, since they're no longer specific to file operations git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2903 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- diff --git a/ChangeLog b/ChangeLog index 0c1377b2..5cf1cab1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -13,17 +13,18 @@ CVS code - openfilestruct, and so that the values in it are used directly instead of being periodically synced up with the globals. Accordingly, remove the globals. Changes to pretty much - every function. Rename global_init() window_size_init(), - rename add_open_file() make_new_buffer(), rename load_buffer() - open_buffer(), rename load_open_file() display_buffer(), - rename open_prevnext_file() switch_to_prevnext_buffer(), - rename open_prevfile_void() switch_to_prev_buffer(), rename - open_nextfile_void() switch_to_next_buffer(), rename - write_marked() write_marked_file(), remove load_file(), rename - cancel_fork() cancel_command(), rename open_pipe() - execute_command(), remove execute_command(), remove - resize_variables(), rename get_buffer() get_key_buffer(), and - rename get_buffer_len() get_key_buffer_len(). (DLR) + every function. Rename add_open_file() make_new_buffer(), + rename load_buffer() open_buffer(), rename load_open_file() + display_buffer(), rename open_prevnext_file() + switch_to_prevnext_buffer(), rename open_prevfile_void() + switch_to_prev_buffer(), rename open_nextfile_void() + switch_to_next_buffer(), rename write_marked() + write_marked_file(), remove load_file(), rename cancel_fork() + cancel_command(), rename open_pipe() execute_command(), remove + execute_command(), rename resize_variables(), rename + global_init() window_size_init(), rename get_buffer() + get_key_buffer(), and rename get_buffer_len() + get_key_buffer_len(). (DLR) - Replace all mvwaddstr(hblank) calls with a new function that does the same thing without the need for hblank. New function blank_line(); changes to do_browser(), blank_titlebar(), @@ -49,18 +50,20 @@ CVS code - do_colorinit() (renamed color_init()), color_to_int() (renamed color_to_short()), and parse_colors(). (DLR) - Change color handling to save only the regex strings - constantly, and to actually compile them on an as-needed - basis. Changes to update_color() and + constantly, and to actually compile them on an as-needed + basis. Changes to update_color() and thanks_for_all_the_fish(). (Brand Huntsman and DLR) - Various other color fixes. Handle unspecified foreground colors properly, don't automatically reinitialize the displayed colors every time we update the current buffer's colors (since the buffer may not be displayed immediately), - and don't bother doing complete refreshes of the screen when + don't bother doing complete refreshes of the screen when color support is enabled if there's no regex associated with - the current file. Changes to do_colorinit() (renamed - color_init()), update_color() (renamed color_update()), - write_file(), do_input(), and do_output(). (DLR) + the current file, and rename variable exttype->val to + exttype->ext, for consistency. Changes to do_colorinit() + (renamed color_init()), update_color() (renamed + color_update()), write_file(), do_input(), do_output(), and + parse_syntax(). (DLR) - Simplify get_totals() to only get the total number of characters, and eliminate dependence on its old ability to get the total number of lines by renumber()ing when necessary and diff --git a/src/color.c b/src/color.c index c54a7bf8..34fcab94 100644 --- a/src/color.c +++ b/src/color.c @@ -124,7 +124,7 @@ void color_update(void) for (e = tmpsyntax->extensions; e != NULL; e = e->next) { /* Set colorstrings if we matched the extension regex. */ - if (regexec(&e->val, openfile->filename, 0, NULL, 0) == 0) + if (regexec(&e->ext, openfile->filename, 0, NULL, 0) == 0) openfile->colorstrings = tmpsyntax->color; if (openfile->colorstrings != NULL) diff --git a/src/files.c b/src/files.c index 474b6acb..96cb9d28 100644 --- a/src/files.c +++ b/src/files.c @@ -37,67 +37,6 @@ #include #include "proto.h" -/* Create a new openfilestruct node. */ -openfilestruct *make_new_opennode(void) -{ - openfilestruct *newnode = - (openfilestruct *)nmalloc(sizeof(openfilestruct)); - newnode->filename = NULL; - - return newnode; -} - -/* Splice a node into an existing openfilestruct. */ -void splice_opennode(openfilestruct *begin, openfilestruct *newnode, - openfilestruct *end) -{ - assert(newnode != NULL && begin != NULL); - - newnode->next = end; - newnode->prev = begin; - begin->next = newnode; - if (end != NULL) - end->prev = newnode; -} - -/* Unlink a node from the rest of the openfilestruct, and delete it. */ -void unlink_opennode(openfilestruct *fileptr) -{ - assert(fileptr != NULL && fileptr->prev != NULL && fileptr->next != NULL && fileptr != fileptr->prev && fileptr != fileptr->next); - - fileptr->prev->next = fileptr->next; - fileptr->next->prev = fileptr->prev; - delete_opennode(fileptr); -} - -/* Delete a node from the openfilestruct. */ -void delete_opennode(openfilestruct *fileptr) -{ - assert(fileptr != NULL && fileptr->filename != NULL && fileptr->fileage != NULL); - - free(fileptr->filename); - free_filestruct(fileptr->fileage); -#ifndef NANO_SMALL - free(fileptr->current_stat); -#endif - free(fileptr); -} - -#ifdef DEBUG -/* Deallocate all memory associated with this and later files, including - * the lines of text. */ -void free_openfilestruct(openfilestruct *src) -{ - assert(src != NULL); - - while (src != src->next) { - src = src->next; - delete_opennode(src->prev); - } - delete_opennode(src); -} -#endif - /* Add an entry to the openfile openfilestruct. This should only be * called from open_buffer(). */ void make_new_buffer(void) @@ -159,14 +98,13 @@ void initialize_buffer(void) /* Reinitialize the current entry of the openfile openfilestruct. */ void reinitialize_buffer(void) { - assert(openfile != NULL); + assert(openfile != NULL && openfile->filename != NULL && openfile->fileage != NULL); free(openfile->filename); - free_filestruct(openfile->fileage); - #ifndef NANO_SMALL - free(openfile->current_stat); + if (openfile->current_stat != NULL) + free(openfile->current_stat); #endif initialize_buffer(); @@ -619,6 +557,7 @@ int open_file(const char *filename, bool newfie, FILE **f) } else statusbar(_("Reading File")); } + return 0; } diff --git a/src/global.c b/src/global.c index 8772e599..26c9e1e9 100644 --- a/src/global.c +++ b/src/global.c @@ -1218,7 +1218,7 @@ void thanks_for_all_the_fish(void) exttype *bob = syntaxes->extensions; syntaxes->extensions = bob->next; - regfree(&bob->val); + regfree(&bob->ext); free(bob); } while (syntaxes->color != NULL) { diff --git a/src/nano.c b/src/nano.c index 1f9bf20d..ec73e0ed 100644 --- a/src/nano.c +++ b/src/nano.c @@ -469,6 +469,77 @@ void copy_from_filestruct(filestruct *file_top, filestruct *file_bot) openfile->totlines = openfile->filebot->lineno; } +/* Create a new openfilestruct node. */ +openfilestruct *make_new_opennode(void) +{ + openfilestruct *newnode = + (openfilestruct *)nmalloc(sizeof(openfilestruct)); + + newnode->filename = NULL; + newnode->fileage = NULL; + newnode->filebot = NULL; + newnode->edittop = NULL; + newnode->current = NULL; + + return newnode; +} + +/* Splice a node into an existing openfilestruct. */ +void splice_opennode(openfilestruct *begin, openfilestruct *newnode, + openfilestruct *end) +{ + assert(newnode != NULL && begin != NULL); + + newnode->next = end; + newnode->prev = begin; + begin->next = newnode; + + if (end != NULL) + end->prev = newnode; +} + +/* Unlink a node from the rest of the openfilestruct, and delete it. */ +void unlink_opennode(openfilestruct *fileptr) +{ + assert(fileptr != NULL && fileptr->prev != NULL && fileptr->next != NULL && fileptr != fileptr->prev && fileptr != fileptr->next); + + fileptr->prev->next = fileptr->next; + fileptr->next->prev = fileptr->prev; + + delete_opennode(fileptr); +} + +/* Delete a node from the openfilestruct. */ +void delete_opennode(openfilestruct *fileptr) +{ + assert(fileptr != NULL && fileptr->filename != NULL && fileptr->fileage != NULL); + + free(fileptr->filename); + free_filestruct(fileptr->fileage); +#ifndef NANO_SMALL + if (fileptr->current_stat != NULL) + free(fileptr->current_stat); +#endif + + free(fileptr); +} + +#ifdef DEBUG +/* Deallocate all memory associated with this and later files, including + * the lines of text. */ +void free_openfilestruct(openfilestruct *src) +{ + assert(src != NULL); + + while (src != src->next) { + src = src->next; + delete_opennode(src->prev); + } + + delete_opennode(src); +} +#endif + void print_view_warning(void) { statusbar(_("Key illegal in VIEW mode")); diff --git a/src/nano.h b/src/nano.h index e39df7f8..f71a01d9 100644 --- a/src/nano.h +++ b/src/nano.h @@ -160,6 +160,15 @@ typedef struct filestruct { ssize_t lineno; /* The line number. */ } filestruct; +typedef struct partition { + filestruct *fileage; + filestruct *top_prev; + char *top_data; + filestruct *filebot; + filestruct *bot_next; + char *bot_data; +} partition; + #ifdef ENABLE_COLOR typedef struct colortype { short fg; /* Foreground color. */ @@ -180,7 +189,7 @@ typedef struct colortype { } colortype; typedef struct exttype { - regex_t val; /* The extensions that match this + regex_t ext; /* The extensions that match this * syntax. */ struct exttype *next; } exttype; @@ -228,15 +237,6 @@ typedef struct openfilestruct { /* Previous node. */ } openfilestruct; -typedef struct partition { - filestruct *fileage; - filestruct *top_prev; - char *top_data; - filestruct *filebot; - filestruct *bot_next; - char *bot_data; -} partition; - typedef struct shortcut { /* Key values that aren't used should be set to NANO_NO_KEY. */ int ctrlval; /* Special sentinel key or control key we want diff --git a/src/proto.h b/src/proto.h index f798a0e1..d8065d64 100644 --- a/src/proto.h +++ b/src/proto.h @@ -228,14 +228,6 @@ void do_cut_till_end(void); void do_uncut_text(void); /* Public functions in files.c. */ -openfilestruct *make_new_opennode(void); -void splice_opennode(openfilestruct *begin, openfilestruct *newnode, - openfilestruct *end); -void unlink_opennode(openfilestruct *fileptr); -void delete_opennode(openfilestruct *fileptr); -#ifdef DEBUG -void free_openfilestruct(openfilestruct *src); -#endif void make_new_buffer(void); void initialize_buffer(void); #ifndef DISABLE_SPELLER @@ -362,6 +354,14 @@ void unpartition_filestruct(partition **p); void move_to_filestruct(filestruct **file_top, filestruct **file_bot, filestruct *top, size_t top_x, filestruct *bot, size_t bot_x); void copy_from_filestruct(filestruct *file_top, filestruct *file_bot); +openfilestruct *make_new_opennode(void); +void splice_opennode(openfilestruct *begin, openfilestruct *newnode, + openfilestruct *end); +void unlink_opennode(openfilestruct *fileptr); +void delete_opennode(openfilestruct *fileptr); +#ifdef DEBUG +void free_openfilestruct(openfilestruct *src); +#endif void print_view_warning(void); void finish(void); void die(const char *msg, ...); diff --git a/src/rcfile.c b/src/rcfile.c index a96744a2..ac3559e8 100644 --- a/src/rcfile.c +++ b/src/rcfile.c @@ -329,7 +329,7 @@ void parse_syntax(char *ptr) break; newext = (exttype *)nmalloc(sizeof(exttype)); - if (nregcomp(&newext->val, fileregptr, REG_NOSUB)) { + if (nregcomp(&newext->ext, fileregptr, REG_NOSUB)) { if (endext == NULL) endsyntax->extensions = newext; else