aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2024-04-28 14:08:12 +0100
committerRon Yorston <rmy@pobox.com>2024-04-28 14:19:51 +0100
commit366cf2abfbcf26931052cad297e35f7eee854936 (patch)
treecb56abf000a23837a7affebd671df298fcee6a46
parentb5e4d3569f8ee48164b9845801bbc4eb8f62171d (diff)
downloadbusybox-w32-366cf2abfbcf26931052cad297e35f7eee854936.tar.gz
busybox-w32-366cf2abfbcf26931052cad297e35f7eee854936.tar.bz2
busybox-w32-366cf2abfbcf26931052cad297e35f7eee854936.zip
libbb: make default history size configurable
Allow the default history size (used if HISTFILESIZE isn't set) to be configured at build time. This may be less than or equal to the standard history size. (GitHub issue #411)
-rw-r--r--configs/mingw32_defconfig1
-rw-r--r--configs/mingw64_defconfig1
-rw-r--r--configs/mingw64a_defconfig1
-rw-r--r--configs/mingw64u_defconfig1
-rw-r--r--include/libbb.h5
-rw-r--r--libbb/Config.src10
-rw-r--r--libbb/lineedit.c4
7 files changed, 21 insertions, 2 deletions
diff --git a/configs/mingw32_defconfig b/configs/mingw32_defconfig
index 8624cd105..eca0dc7fc 100644
--- a/configs/mingw32_defconfig
+++ b/configs/mingw32_defconfig
@@ -135,6 +135,7 @@ CONFIG_FEATURE_EDITING=y
135CONFIG_FEATURE_EDITING_MAX_LEN=1024 135CONFIG_FEATURE_EDITING_MAX_LEN=1024
136CONFIG_FEATURE_EDITING_VI=y 136CONFIG_FEATURE_EDITING_VI=y
137CONFIG_FEATURE_EDITING_HISTORY=1023 137CONFIG_FEATURE_EDITING_HISTORY=1023
138CONFIG_FEATURE_EDITING_HISTORY_DEFAULT=384
138CONFIG_FEATURE_EDITING_SAVEHISTORY=y 139CONFIG_FEATURE_EDITING_SAVEHISTORY=y
139# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set 140# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
140CONFIG_FEATURE_REVERSE_SEARCH=y 141CONFIG_FEATURE_REVERSE_SEARCH=y
diff --git a/configs/mingw64_defconfig b/configs/mingw64_defconfig
index b8234f894..d71d2abf9 100644
--- a/configs/mingw64_defconfig
+++ b/configs/mingw64_defconfig
@@ -135,6 +135,7 @@ CONFIG_FEATURE_EDITING=y
135CONFIG_FEATURE_EDITING_MAX_LEN=1024 135CONFIG_FEATURE_EDITING_MAX_LEN=1024
136CONFIG_FEATURE_EDITING_VI=y 136CONFIG_FEATURE_EDITING_VI=y
137CONFIG_FEATURE_EDITING_HISTORY=1023 137CONFIG_FEATURE_EDITING_HISTORY=1023
138CONFIG_FEATURE_EDITING_HISTORY_DEFAULT=384
138CONFIG_FEATURE_EDITING_SAVEHISTORY=y 139CONFIG_FEATURE_EDITING_SAVEHISTORY=y
139# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set 140# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
140CONFIG_FEATURE_REVERSE_SEARCH=y 141CONFIG_FEATURE_REVERSE_SEARCH=y
diff --git a/configs/mingw64a_defconfig b/configs/mingw64a_defconfig
index 654754c06..4d554ec75 100644
--- a/configs/mingw64a_defconfig
+++ b/configs/mingw64a_defconfig
@@ -135,6 +135,7 @@ CONFIG_FEATURE_EDITING=y
135CONFIG_FEATURE_EDITING_MAX_LEN=1024 135CONFIG_FEATURE_EDITING_MAX_LEN=1024
136CONFIG_FEATURE_EDITING_VI=y 136CONFIG_FEATURE_EDITING_VI=y
137CONFIG_FEATURE_EDITING_HISTORY=1023 137CONFIG_FEATURE_EDITING_HISTORY=1023
138CONFIG_FEATURE_EDITING_HISTORY_DEFAULT=384
138CONFIG_FEATURE_EDITING_SAVEHISTORY=y 139CONFIG_FEATURE_EDITING_SAVEHISTORY=y
139# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set 140# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
140CONFIG_FEATURE_REVERSE_SEARCH=y 141CONFIG_FEATURE_REVERSE_SEARCH=y
diff --git a/configs/mingw64u_defconfig b/configs/mingw64u_defconfig
index f02389095..977c6966d 100644
--- a/configs/mingw64u_defconfig
+++ b/configs/mingw64u_defconfig
@@ -135,6 +135,7 @@ CONFIG_FEATURE_EDITING=y
135CONFIG_FEATURE_EDITING_MAX_LEN=1024 135CONFIG_FEATURE_EDITING_MAX_LEN=1024
136CONFIG_FEATURE_EDITING_VI=y 136CONFIG_FEATURE_EDITING_VI=y
137CONFIG_FEATURE_EDITING_HISTORY=1023 137CONFIG_FEATURE_EDITING_HISTORY=1023
138CONFIG_FEATURE_EDITING_HISTORY_DEFAULT=384
138CONFIG_FEATURE_EDITING_SAVEHISTORY=y 139CONFIG_FEATURE_EDITING_SAVEHISTORY=y
139# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set 140# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
140CONFIG_FEATURE_REVERSE_SEARCH=y 141CONFIG_FEATURE_REVERSE_SEARCH=y
diff --git a/include/libbb.h b/include/libbb.h
index 76a107521..a7d31ed0c 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -2015,6 +2015,11 @@ unsigned size_from_HISTFILESIZE(const char *hp) FAST_FUNC;
2015# else 2015# else
2016# define MAX_HISTORY 0 2016# define MAX_HISTORY 0
2017# endif 2017# endif
2018# if defined CONFIG_FEATURE_EDITING_HISTORY_DEFAULT && CONFIG_FEATURE_EDITING_HISTORY_DEFAULT > 0
2019# define DEFAULT_HISTORY (CONFIG_FEATURE_EDITING_HISTORY_DEFAULT + 0)
2020# else
2021# define DEFAULT_HISTORY 0
2022# endif
2018typedef const char *get_exe_name_t(int i) FAST_FUNC; 2023typedef const char *get_exe_name_t(int i) FAST_FUNC;
2019typedef const char *sh_get_var_t(const char *name) FAST_FUNC; 2024typedef const char *sh_get_var_t(const char *name) FAST_FUNC;
2020typedef int sh_accept_glob_t(const char *name) FAST_FUNC; 2025typedef int sh_accept_glob_t(const char *name) FAST_FUNC;
diff --git a/libbb/Config.src b/libbb/Config.src
index b980f19a9..61b4601d6 100644
--- a/libbb/Config.src
+++ b/libbb/Config.src
@@ -188,6 +188,16 @@ config FEATURE_EDITING_HISTORY
188 help 188 help
189 Specify command history size (0 - disable). 189 Specify command history size (0 - disable).
190 190
191config FEATURE_EDITING_HISTORY_DEFAULT
192 int "Default history size"
193 range 0 FEATURE_EDITING_HISTORY
194 default 255
195 depends on PLATFORM_MINGW32 && FEATURE_EDITING && FEATURE_SH_HISTFILESIZE
196 help
197 Specify default command history size. This may be smaller than
198 FEATURE_EDITING_HISTORY, in which case the user may increase
199 the history size by setting HISTFILESIZE.
200
191config FEATURE_EDITING_SAVEHISTORY 201config FEATURE_EDITING_SAVEHISTORY
192 bool "History saving" 202 bool "History saving"
193 default y 203 default y
diff --git a/libbb/lineedit.c b/libbb/lineedit.c
index 1a095b657..811e3e475 100644
--- a/libbb/lineedit.c
+++ b/libbb/lineedit.c
@@ -1585,8 +1585,8 @@ line_input_t* FAST_FUNC new_line_input_t(int flags)
1585 1585
1586unsigned FAST_FUNC size_from_HISTFILESIZE(const char *hp) 1586unsigned FAST_FUNC size_from_HISTFILESIZE(const char *hp)
1587{ 1587{
1588# if ENABLE_PLATFORM_MINGW32 && MAX_HISTORY > 511 1588# if ENABLE_PLATFORM_MINGW32 && DEFAULT_HISTORY > 0 && DEFAULT_HISTORY <= MAX_HISTORY
1589 int size = 384; 1589 int size = DEFAULT_HISTORY;
1590# else 1590# else
1591 int size = MAX_HISTORY; 1591 int size = MAX_HISTORY;
1592# endif 1592# endif