Readline support for bti
authorAmir Mohammad Saied <amirsaied@gmail.com>
Sun, 18 Jan 2009 05:50:13 +0000 (09:20 +0330)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sun, 18 Jan 2009 16:39:33 +0000 (08:39 -0800)
Readline support for bti

Makefile
bti.c

index 7fc3a7b..b39efc9 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -55,10 +55,11 @@ export E Q
 
 # We need -lcurl for the curl stuff
 # We need -lsocket and -lnsl when on Solaris
+# We need -lreadline for readline support
 # We need -lssl and -lcrypto when using libcurl with SSL support
 # We need -lpthread for the pthread example
 #LIB_OBJS = -lcurl -lnsl -lssl -lcrypto
-LIB_OBJS = -lcurl -lnsl
+LIB_OBJS = -lcurl -lnsl -lreadline
 
 all:   $(PROGRAM) $(MAN_PAGES)
 
diff --git a/bti.c b/bti.c
index cf1b164..b5de9e5 100644 (file)
--- a/bti.c
+++ b/bti.c
@@ -27,6 +27,7 @@
 #include <time.h>
 #include <sys/stat.h>
 #include <curl/curl.h>
+#include <readline/readline.h>
 #include "bti_version.h"
 
 
@@ -86,17 +87,14 @@ static void display_version(void)
 
 static char *get_string_from_stdin(void)
 {
-       char *temp;
-       char *string;
+       static char *string = (char *)NULL;
+       if (string) {
+               free(string);
+               string = (char *)NULL;
+       }
 
-       string = zalloc(1000);
-       if (!string)
-               return NULL;
+       string = readline("tweet: ");
 
-       if (!fgets(string, 999, stdin))
-               return NULL;
-       temp = strchr(string, '\n');
-       *temp = '\0';
        return string;
 }
 
@@ -410,6 +408,7 @@ int main(int argc, char *argv[], char *envp[])
        char *dir;
 #endif
 
+       rl_bind_key('\t', rl_insert);
        session = session_alloc();
        if (!session) {
                fprintf(stderr, "no more memory...\n");