commit dc18746cbdf601f8e4d28113c95896236412f16b
parent c92b9be6cd0f2d4cddf8bff2995851571851bd75
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Fri, 23 Dec 2016 13:49:14 +0100
tweaks: retype, rename, and reshuffle a function
Diffstat:
3 files changed, 20 insertions(+), 19 deletions(-)
diff --git a/src/files.c b/src/files.c
@@ -1214,7 +1214,7 @@ void do_insertfile(void)
#ifndef NANO_TINY
if (!execute)
#endif
- if (check_poshistory(answer, &priorline, &priorcol))
+ if (has_old_position(answer, &priorline, &priorcol))
do_gotolinecolumn(priorline, priorcol, FALSE, FALSE);
}
#endif /* !DISABLE_HISTORIES */
@@ -3146,27 +3146,28 @@ void update_poshistory(char *filename, ssize_t lineno, ssize_t xpos)
free(fullpath);
}
-/* Check the recorded last file positions to see if the given file
- * matches an existing entry. If so, return 1 and set line and column
- * to the retrieved values. Otherwise, return 0. */
-int check_poshistory(const char *file, ssize_t *line, ssize_t *column)
+/* Check whether the given file matches an existing entry in the recorded
+ * last file positions. If not, return FALSE. If yes, return TRUE and
+ * set line and column to the retrieved values. */
+bool has_old_position(const char *file, ssize_t *line, ssize_t *column)
{
- poshiststruct *posptr;
+ poshiststruct *posptr = position_history;
char *fullpath = get_full_path(file);
if (fullpath == NULL)
- return 0;
+ return FALSE;
+
+ while (posptr != NULL && strcmp(posptr->filename, fullpath) != 0)
+ posptr = posptr->next;
- for (posptr = position_history; posptr != NULL; posptr = posptr->next) {
- if (!strcmp(posptr->filename, fullpath)) {
- *line = posptr->lineno;
- *column = posptr->xno;
- free(fullpath);
- return 1;
- }
- }
free(fullpath);
- return 0;
+
+ if (posptr == NULL)
+ return FALSE;
+
+ *line = posptr->lineno;
+ *column = posptr->xno;
+ return TRUE;
}
/* Load the recorded file positions from ~/.nano/filepos_history. */
diff --git a/src/nano.c b/src/nano.c
@@ -2606,7 +2606,7 @@ int main(int argc, char **argv)
else if (ISSET(POS_HISTORY)) {
ssize_t savedposline, savedposcol;
/* If edited before, restore the last cursor position. */
- if (check_poshistory(argv[i], &savedposline, &savedposcol))
+ if (has_old_position(argv[i], &savedposline, &savedposcol))
do_gotolinecolumn(savedposline, savedposcol,
FALSE, FALSE);
}
@@ -2640,7 +2640,7 @@ int main(int argc, char **argv)
else if (ISSET(POS_HISTORY)) {
ssize_t savedposline, savedposcol;
/* If the file was edited before, restore the last cursor position. */
- if (check_poshistory(argv[optind], &savedposline, &savedposcol))
+ if (has_old_position(argv[optind], &savedposline, &savedposcol))
do_gotolinecolumn(savedposline, savedposcol, FALSE, FALSE);
}
#endif
diff --git a/src/proto.h b/src/proto.h
@@ -354,7 +354,7 @@ int check_dotnano(void);
void load_poshistory(void);
void save_poshistory(void);
void update_poshistory(char *filename, ssize_t lineno, ssize_t xpos);
-int check_poshistory(const char *file, ssize_t *line, ssize_t *column);
+bool has_old_position(const char *file, ssize_t *line, ssize_t *column);
#endif
/* Some functions in global.c. */