From b3eb8fb29587e9e6a0410d08bb716c7661aae3a2 Mon Sep 17 00:00:00 2001 From: Alessandro Bonazzi Date: Sun, 26 Jul 2020 09:57:09 +0200 Subject: [PATCH] Patch level : 12.0 no-patch Files correlati : Commento : Corretta destroy delle Token_string nel caso dell'ultimo elemento. corretta add delle Token_string di un booleano --- src/include/strings.cpp | 11 +++++++++-- src/include/strings.h | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/include/strings.cpp b/src/include/strings.cpp index 4b50b9cb0..36f27858d 100755 --- a/src/include/strings.cpp +++ b/src/include/strings.cpp @@ -1976,8 +1976,15 @@ void TToken_string::destroy(int n) if (sep >= n) { const char* p = strchr(s, _separator); - *s = '\0'; - if (p != NULL) strcat(s, p+1); + + if (p != NULL) + { + *s = '\0'; + strcat(s, p + 1); + } + else + if (*(--s) == _separator) + *s = '\0'; } } restart(); diff --git a/src/include/strings.h b/src/include/strings.h index ad9953e08..1b12795ee 100755 --- a/src/include/strings.h +++ b/src/include/strings.h @@ -674,7 +674,7 @@ public: // @cmember Aggiunge una data void add(const TDate d, int pos = -1); // @cmember Aggiunge un booleano - void add(bool on, int pos = -1) { add(on ? "X" : ""); } + void add(bool on, int pos = -1) { add(on ? "X" : "", pos); } // @cmember Inserisce una stringa void insert_at(const char* s, int n); // @cmember Toglie la stringa di posizione pos