[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-anastasis] branch master updated: getline -> readline,
gnunet <=