From e7d0f60aa1d091b3905a77b9870f0b878f769e03 Mon Sep 17 00:00:00 2001 From: Louis RUBET Date: Wed, 3 Sep 2014 17:45:48 +0200 Subject: [PATCH] Manage cmdline --- TODO | 8 ++++---- src/rpn.cpp | 14 +++++++++----- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/TODO b/TODO index 4f8c63f..0863ccd 100644 --- a/TODO +++ b/TODO @@ -4,14 +4,14 @@ general: entry: -- parse en entier la ligne de commande puis si pas de pb de syntaxe entrer -- entrée sur plusieurs lignes +- gestion des flèches haut/bas +- autocompletion avec tab +- alt-R + recherche +- entrée interactive sur plusieurs lignes - entrée d'une variable sans '' = rcl -- rpn <"commande entière"> - entrée de commande shell avec $commande shell, résultat dans une chaîne (?) commands: print alias -alt-R + recherche ? date / time diff --git a/src/rpn.cpp b/src/rpn.cpp index c1bbdcc..33f0fcb 100644 --- a/src/rpn.cpp +++ b/src/rpn.cpp @@ -39,7 +39,7 @@ using namespace std; #include "stack.h" static const char CURSOR[] = "> "; -static const char SHOW_STACK_SEPARATOR[] = ":\t"; +static const string g_show_stack_separator = ":\t"; static int g_verbose = 0; typedef enum { @@ -608,7 +608,7 @@ public: return ret; } - static void show_stack(stack& st) + static void show_stack(stack& st, const string& separator = g_show_stack_separator) { if (st.size() == 1) { @@ -617,9 +617,11 @@ public: } else { + bool show_sep = (! separator.empty()); for (int i = st.size()-1; i>=0; i--) { - cout<show(); cout<