gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-anastasis] branch master updated: getline -> readline


From: gnunet
Subject: [taler-anastasis] branch master updated: getline -> readline
Date: Mon, 18 May 2020 11:04:23 +0200

This is an automated email from the git hooks/post-receive script.

dennis-neufeld pushed a commit to branch master
in repository anastasis.

The following commit(s) were added to refs/heads/master by this push:
     new aa0b6a9  getline -> readline
aa0b6a9 is described below

commit aa0b6a944f26cab9816106c7062aecbb064d9448
Author: Dennis Neufeld <address@hidden>
AuthorDate: Mon May 18 09:04:19 2020 +0000

    getline -> readline
---
 src/cli/Makefile.am               |  2 ++
 src/cli/anastasis-cli-assembler.c | 29 +++++++++++------------
 src/cli/anastasis-cli-splitter.c  | 48 +++++++++++++++++++--------------------
 3 files changed, 39 insertions(+), 40 deletions(-)

diff --git a/src/cli/Makefile.am b/src/cli/Makefile.am
index 51b79ed..4860ff7 100644
--- a/src/cli/Makefile.am
+++ b/src/cli/Makefile.am
@@ -24,6 +24,7 @@ anastasis_splitter_LDADD = \
   -lgnunetutil \
   -ljansson \
   -luuid \
+  -lreadline \
   $(XLIB)
 
 anastasis_assembler_SOURCES = \
@@ -40,6 +41,7 @@ anastasis_assembler_LDADD = \
   -lgnunetutil \
   -ljansson \
   -luuid \
+  -lreadline \
   $(XLIB)
 
 if HAVE_LIBCURL
diff --git a/src/cli/anastasis-cli-assembler.c 
b/src/cli/anastasis-cli-assembler.c
index 8ae56e1..2a79898 100644
--- a/src/cli/anastasis-cli-assembler.c
+++ b/src/cli/anastasis-cli-assembler.c
@@ -22,12 +22,11 @@
  */
 #include "platform.h"
 #include <gnunet/gnunet_util_lib.h>
+#include <readline/readline.h>
+#include <readline/history.h>
 #include "anastasis_service.h"
 #include "anastasis.h"
 
-/* Constant, max size of keyboard input buffer */
-#define MAX_SIZE_INPUT_BUFFER 256
-
 /**
  * Global option '--me' to import json containing details of user.
  */
@@ -67,23 +66,21 @@ static void
 read_keyboard_command (void *cls)
 {
   (void) cls;
-  char *buffer = NULL;
-  size_t buffer_size = MAX_SIZE_INPUT_BUFFER;
-  size_t characters;
+  char *buffer = readline ("anastasis-splitter> ");
+  size_t characters = strlen (buffer);
+
+  // Check for EOF.
+  if (! buffer)
+  {
+    GNUNET_SCHEDULER_shutdown ();
+    return;
+  }
+  add_history (buffer);
 
   keyboard_task = NULL;
-  buffer = (char *) GNUNET_malloc (buffer_size * sizeof (char));
-  characters = getline (&buffer,
-                        &buffer_size,
-                        stdin);
 
-  if (characters == 2 * sizeof (char))
+  if (characters == sizeof (char))
   {
-    if (EOF == (char) buffer[0])
-    {
-      GNUNET_SCHEDULER_shutdown ();
-      return;
-    }
     switch ((char) buffer[0])
     {
     case 'x':
diff --git a/src/cli/anastasis-cli-splitter.c b/src/cli/anastasis-cli-splitter.c
index 0a415ee..d7033d2 100644
--- a/src/cli/anastasis-cli-splitter.c
+++ b/src/cli/anastasis-cli-splitter.c
@@ -22,13 +22,12 @@
  */
 #include "platform.h"
 #include <gnunet/gnunet_util_lib.h>
+#include <readline/readline.h>
+#include <readline/history.h>
 #include <taler/taler_util.h>
 #include "anastasis_service.h"
 #include "anastasis.h"
 
-/* Constant, max size of keyboard input buffer */
-#define MAX_SIZE_INPUT_BUFFER 256
-
 /**
  * State for a "truth upload" CMD.
  */
@@ -257,28 +256,26 @@ static void
 read_keyboard_command (void *cls)
 {
   (void) cls;
-  char *buffer = NULL;
-  size_t buffer_size = MAX_SIZE_INPUT_BUFFER;
-  size_t characters;
+  char *buffer = readline ("anastasis-splitter> ");
+  size_t characters = strlen (buffer);
+
+  // Check for EOF.
+  if (! buffer)
+  {
+    GNUNET_SCHEDULER_shutdown ();
+    return;
+  }
+  add_history (buffer);
 
   keyboard_task = NULL;
-  buffer = (char *) GNUNET_malloc (buffer_size * sizeof (char));
-  characters = getline (&buffer,
-                        &buffer_size,
-                        stdin);
 
-  if (characters == 2 * sizeof (char))
+  if (characters == sizeof (char))
   {
-    if (EOF == (char) buffer[0])
-    {
-      GNUNET_SCHEDULER_shutdown ();
-      return;
-    }
     switch ((char) buffer[0])
     {
     case 'x':
       GNUNET_SCHEDULER_shutdown ();
-      GNUNET_free (buffer);
+      free (buffer);
       buffer = NULL;
       return;
     case 'o':
@@ -297,7 +294,7 @@ read_keyboard_command (void *cls)
         "'publish' to upload the recovery document\n"
         "\n"
         );
-      GNUNET_free (buffer);
+      free (buffer);
       buffer = NULL;
       break;
     default:
@@ -315,7 +312,7 @@ read_keyboard_command (void *cls)
   if ((0 == strncmp ("server",
                      buffer,
                      strlen ("server")))
-      && (characters == strlen ("server") + sizeof (char)))
+      && (characters == strlen ("server")))
   {
     // FIXME "server" logic here
     if (NULL != tu_states)
@@ -338,7 +335,7 @@ read_keyboard_command (void *cls)
       printf ("Please add a server before!\n");
 
     start_read_keyboard ();
-    GNUNET_free (buffer);
+    free (buffer);
     buffer = NULL;
     return;
   }
@@ -349,7 +346,7 @@ read_keyboard_command (void *cls)
     // FIXME "server add" logic here
     struct TruthUploadState tus;
     struct SaltState *ss;
-    size_t url_len = characters - strlen ("server add ") - sizeof (char);
+    size_t url_len = characters - strlen ("server add ");
 
     ss = GNUNET_new (struct SaltState);
     char *url_delim = &buffer[strlen ("server add ")];
@@ -388,7 +385,7 @@ read_keyboard_command (void *cls)
   if ((0 == strncmp ("truth",
                      buffer,
                      strlen ("truth")))
-      && (characters == strlen ("truth") + sizeof (char)))
+      && (characters == strlen ("truth")))
   {
     // FIXME "truth" logic here
     if (NULL != tu_states)
@@ -491,7 +488,7 @@ read_keyboard_command (void *cls)
   if ((0 == strncmp ("policy",
                      buffer,
                      strlen ("policy")))
-      && (characters == strlen ("policy") + sizeof (char)))
+      && (characters == strlen ("policy")))
   {
     // FIXME "policy" logic here
     start_read_keyboard ();
@@ -513,7 +510,7 @@ read_keyboard_command (void *cls)
   if ((0 == strncmp ("publish",
                      buffer,
                      strlen ("publish")))
-      && (characters == strlen ("publish") + sizeof (char)))
+      && (characters == strlen ("publish")))
   {
     // FIXME "publish" logic here
     start_read_keyboard ();
@@ -602,6 +599,9 @@ run (void *cls,
   (void) args;
   (void) cfgfile;
 
+  // Configure readline to auto-complete paths when the tab key is hit.
+  rl_bind_key ('\t', rl_complete);
+
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Starting anastasis-splitter\n");
 

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]