From 9f509e1453e7d76ca9569b99c7435e0be7c465c6 Mon Sep 17 00:00:00 2001 From: Stephan Beal Date: Mon, 12 May 2014 20:02:22 +0200 Subject: [PATCH] linenoiseSetCompletionCallback() now returns its prior callback, so that the caller can save/restore the value. --- linenoise.c | 8 ++++++-- linenoise.h | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/linenoise.c b/linenoise.c index 3e02439..17303b1 100644 --- a/linenoise.c +++ b/linenoise.c @@ -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) { diff --git a/linenoise.h b/linenoise.h index 7ebf244..bb74e9f 100644 --- a/linenoise.h +++ b/linenoise.h @@ -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 -- 2.44.0