diff --git a/ChangeLog b/ChangeLog index b6ec5f414963f0c574116f34f4af5be4e58cd0e1..5d2a39fde1b45357812025fd918165e942fe3d9e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2014-07-27 Benno Schulenberg <bensberg@justemail.net> + * src/global.c (add_to_sclist): Remove the now unused and unneeded + addition ability from this builder function of the shortcut list. + 2014-07-24 Jordi Mallach <jordi@gnu.org> * doc/texinfo/nano.texi, doc/man/nanorc.5: Typo fix. diff --git a/src/global.c b/src/global.c index 2f34fefb2f1f478476095a1a7a2baf5f82ea1c4c..9db4a4332bfadc1fecc8df5acb2deca79ad6c2c6 100644 --- a/src/global.c +++ b/src/global.c @@ -343,37 +343,26 @@ const sc *first_sc_for(int menu, void (*func)(void)) return NULL; } - -/* Add a string to the shortcut list. - * Allows updates to existing entries in the list. */ +/* Add a key combo to the shortcut list. */ void add_to_sclist(int menu, const char *scstring, void (*func)(void), int toggle) { - sc *s; - - if (sclist == NULL) { - sclist = (sc *)nmalloc(sizeof(sc)); - s = sclist; - s->next = NULL; - } else { - for (s = sclist; s->next != NULL; s = s->next) - if (s->menu == menu && s->keystr == scstring) - break; + static sc *tailsc; + sc *s = (sc *)nmalloc(sizeof(sc)); - if (s->menu != menu || s->keystr != scstring) { /* i.e. this is not a replace... */ -#ifdef DEBUG - fprintf(stderr, "No match found...\n"); -#endif - s->next = (sc *)nmalloc(sizeof(sc)); - s = s->next; - s->next = NULL; - } - } + /* Start the list, or tack on the next item. */ + if (sclist == NULL) + sclist = s; + else + tailsc->next = s; + tailsc = s; + s->next = NULL; - s->type = strtokeytype(scstring); + /* Fill in the data. */ s->menu = menu; + s->scfunc = func; s->toggle = toggle; s->keystr = (char *) scstring; - s->scfunc = func; + s->type = strtokeytype(scstring); assign_keyinfo(s); #ifdef DEBUG