Renaming the struct type 'exttype' to 'regexlisttype', and upon exit
also freeing the regexes for libmagic results and headerlines. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4862 35c25a1d-7b9e-4130-9fde-d3aeb78583b8master
parent
cf4f80da9a
commit
1d5134d93e
|
@ -10,6 +10,9 @@
|
|||
* src/*.h, src/rcfile.c (parse_magictype, parse_headers): Rename them
|
||||
to parse_magic_exp() and parse_header_exp() to be more fitting, further
|
||||
symmetrify them, and improve some comments.
|
||||
* src/nano.h, src/color.c, src/global.c, src/rcfile.c: Rename struct
|
||||
type 'exttype' to 'regexlisttype', to better match its functions, and
|
||||
upon exit also free the regexes for libmagic results and headerlines.
|
||||
|
||||
2014-05-10 Chris Allegretta <chrisa@asty.org>
|
||||
* src/rcfile.c (parse_color_names): Redefine false and true to
|
||||
|
|
|
@ -153,7 +153,7 @@ void color_update(void)
|
|||
syntaxtype *tmpsyntax;
|
||||
syntaxtype *defsyntax = NULL;
|
||||
colortype *tmpcolor, *defcolor = NULL;
|
||||
exttype *e;
|
||||
regexlisttype *e;
|
||||
|
||||
/* Var magicstring will stay NULL if we fail to get a magic result. */
|
||||
#ifdef HAVE_LIBMAGIC
|
||||
|
|
23
src/global.c
23
src/global.c
|
@ -1624,8 +1624,7 @@ void thanks_for_all_the_fish(void)
|
|||
|
||||
free(syntaxes->desc);
|
||||
while (syntaxes->extensions != NULL) {
|
||||
exttype *bob = syntaxes->extensions;
|
||||
|
||||
regexlisttype *bob = syntaxes->extensions;
|
||||
syntaxes->extensions = bob->next;
|
||||
free(bob->ext_regex);
|
||||
if (bob->ext != NULL) {
|
||||
|
@ -1634,6 +1633,26 @@ void thanks_for_all_the_fish(void)
|
|||
}
|
||||
free(bob);
|
||||
}
|
||||
while (syntaxes->headers != NULL) {
|
||||
regexlisttype *bob = syntaxes->headers;
|
||||
syntaxes->headers = bob->next;
|
||||
free(bob->ext_regex);
|
||||
if (bob->ext != NULL) {
|
||||
regfree(bob->ext);
|
||||
free(bob->ext);
|
||||
}
|
||||
free(bob);
|
||||
}
|
||||
while (syntaxes->magics != NULL) {
|
||||
regexlisttype *bob = syntaxes->magics;
|
||||
syntaxes->magics = bob->next;
|
||||
free(bob->ext_regex);
|
||||
if (bob->ext != NULL) {
|
||||
regfree(bob->ext);
|
||||
free(bob->ext);
|
||||
}
|
||||
free(bob);
|
||||
}
|
||||
while (syntaxes->color != NULL) {
|
||||
colortype *bob = syntaxes->color;
|
||||
|
||||
|
|
12
src/nano.h
12
src/nano.h
|
@ -226,23 +226,23 @@ typedef struct colortype {
|
|||
/* Basic id for assigning to lines later. */
|
||||
} colortype;
|
||||
|
||||
typedef struct exttype {
|
||||
typedef struct regexlisttype {
|
||||
char *ext_regex;
|
||||
/* The regexstrings for the things that match this syntax. */
|
||||
regex_t *ext;
|
||||
/* The compiled regexes. */
|
||||
struct exttype *next;
|
||||
struct regexlisttype *next;
|
||||
/* Next set of regexes. */
|
||||
} exttype;
|
||||
} regexlisttype;
|
||||
|
||||
typedef struct syntaxtype {
|
||||
char *desc;
|
||||
/* The name of this syntax. */
|
||||
exttype *extensions;
|
||||
regexlisttype *extensions;
|
||||
/* The list of extensions that this syntax applies to. */
|
||||
exttype *headers;
|
||||
regexlisttype *headers;
|
||||
/* The list of headerlines that this syntax applies to. */
|
||||
exttype *magics;
|
||||
regexlisttype *magics;
|
||||
/* The list of libmagic results that this syntax applies to. */
|
||||
colortype *color;
|
||||
/* The colors used in this syntax. */
|
||||
|
|
18
src/rcfile.c
18
src/rcfile.c
|
@ -257,7 +257,7 @@ void parse_syntax(char *ptr)
|
|||
{
|
||||
const char *fileregptr = NULL, *nameptr = NULL;
|
||||
syntaxtype *tmpsyntax, *prev_syntax;
|
||||
exttype *endext = NULL;
|
||||
regexlisttype *endext = NULL;
|
||||
/* The end of the extensions list for this syntax. */
|
||||
|
||||
assert(ptr != NULL);
|
||||
|
@ -346,7 +346,7 @@ void parse_syntax(char *ptr)
|
|||
|
||||
/* Now load the extension regexes into their part of the struct. */
|
||||
while (*ptr != '\0') {
|
||||
exttype *newext;
|
||||
regexlisttype *newext;
|
||||
|
||||
while (*ptr != '"' && *ptr != '\0')
|
||||
ptr++;
|
||||
|
@ -361,7 +361,7 @@ void parse_syntax(char *ptr)
|
|||
if (ptr == NULL)
|
||||
break;
|
||||
|
||||
newext = (exttype *)nmalloc(sizeof(exttype));
|
||||
newext = (regexlisttype *)nmalloc(sizeof(regexlisttype));
|
||||
|
||||
/* Save the extension regex if it's valid. */
|
||||
if (nregcomp(fileregptr, REG_NOSUB)) {
|
||||
|
@ -383,7 +383,7 @@ void parse_syntax(char *ptr)
|
|||
void parse_magic_exp(char *ptr)
|
||||
{
|
||||
#ifdef HAVE_LIBMAGIC
|
||||
exttype *endmagic = NULL;
|
||||
regexlisttype *endmagic = NULL;
|
||||
|
||||
assert(ptr != NULL);
|
||||
|
||||
|
@ -411,7 +411,7 @@ void parse_magic_exp(char *ptr)
|
|||
/* Now load the magic regexes into their part of the struct. */
|
||||
while (*ptr != '\0') {
|
||||
const char *regexstring;
|
||||
exttype *newmagic;
|
||||
regexlisttype *newmagic;
|
||||
|
||||
while (*ptr != '"' && *ptr != '\0')
|
||||
ptr++;
|
||||
|
@ -426,7 +426,7 @@ void parse_magic_exp(char *ptr)
|
|||
if (ptr == NULL)
|
||||
break;
|
||||
|
||||
newmagic = (exttype *)nmalloc(sizeof(exttype));
|
||||
newmagic = (regexlisttype *)nmalloc(sizeof(regexlisttype));
|
||||
|
||||
/* Save the regex string if it's valid. */
|
||||
if (nregcomp(regexstring, REG_NOSUB)) {
|
||||
|
@ -876,7 +876,7 @@ bool parse_color_names(char *combostr, short *fg, short *bg, bool *bright)
|
|||
/* Parse the header-line regexes that may influence the choice of syntax. */
|
||||
void parse_header_exp(char *ptr)
|
||||
{
|
||||
exttype *endheader = NULL;
|
||||
regexlisttype *endheader = NULL;
|
||||
|
||||
assert(ptr != NULL);
|
||||
|
||||
|
@ -893,7 +893,7 @@ void parse_header_exp(char *ptr)
|
|||
|
||||
while (*ptr != '\0') {
|
||||
const char *regexstring;
|
||||
exttype *newheader;
|
||||
regexlisttype *newheader;
|
||||
|
||||
if (*ptr != '"') {
|
||||
rcfile_error(
|
||||
|
@ -909,7 +909,7 @@ void parse_header_exp(char *ptr)
|
|||
if (ptr == NULL)
|
||||
break;
|
||||
|
||||
newheader = (exttype *)nmalloc(sizeof(exttype));
|
||||
newheader = (regexlisttype *)nmalloc(sizeof(regexlisttype));
|
||||
|
||||
/* Save the regex string if it's valid */
|
||||
if (nregcomp(regexstring, 0)) {
|
||||
|
|
Loading…
Reference in New Issue