]> git.lizzy.rs Git - linenoise.git/commitdiff
linenoiseSetCompletionCallback() now returns its prior callback, so that the caller...
authorStephan Beal <sgbeal@googlemail.com>
Mon, 12 May 2014 18:02:22 +0000 (20:02 +0200)
committerStephan Beal <sgbeal@googlemail.com>
Mon, 12 May 2014 18:02:22 +0000 (20:02 +0200)
linenoise.c
linenoise.h

index 3e0243965c5377e33729739b6bf5437e4c83c963..17303b1eff2fbef8e1a98f4d98a7db74acb88b41 100644 (file)
@@ -1110,9 +1110,13 @@ static int completeLine(struct current *current) {
     return c; /* Return last read character */
 }
 
-/* Register a callback function to be called for tab-completion. */
-void linenoiseSetCompletionCallback(linenoiseCompletionCallback *fn) {
+/* Register a callback function to be called for tab-completion.
+   Returns the prior callback so that the caller may (if needed)
+   restore it when done. */
+linenoiseCompletionCallback * linenoiseSetCompletionCallback(linenoiseCompletionCallback *fn) {
+    linenoiseCompletionCallback * old = completionCallback;
     completionCallback = fn;
+    return old;
 }
 
 void linenoiseAddCompletion(linenoiseCompletions *lc, const char *str) {
index 7ebf244ee80e7f0bd92a551f3bb29de43ae7835a..bb74e9fc9076a99b17c366fecac323bf43c13f8c 100644 (file)
@@ -44,7 +44,7 @@ typedef struct linenoiseCompletions {
 } linenoiseCompletions;
 
 typedef void(linenoiseCompletionCallback)(const char *, linenoiseCompletions *);
-void linenoiseSetCompletionCallback(linenoiseCompletionCallback *);
+linenoiseCompletionCallback * linenoiseSetCompletionCallback(linenoiseCompletionCallback *);
 void linenoiseAddCompletion(linenoiseCompletions *, const char *);
 #endif