diff options
author | Ron Yorston <rmy@pobox.com> | 2024-04-28 14:08:12 +0100 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2024-04-28 14:19:51 +0100 |
commit | 366cf2abfbcf26931052cad297e35f7eee854936 (patch) | |
tree | cb56abf000a23837a7affebd671df298fcee6a46 | |
parent | b5e4d3569f8ee48164b9845801bbc4eb8f62171d (diff) | |
download | busybox-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_defconfig | 1 | ||||
-rw-r--r-- | configs/mingw64_defconfig | 1 | ||||
-rw-r--r-- | configs/mingw64a_defconfig | 1 | ||||
-rw-r--r-- | configs/mingw64u_defconfig | 1 | ||||
-rw-r--r-- | include/libbb.h | 5 | ||||
-rw-r--r-- | libbb/Config.src | 10 | ||||
-rw-r--r-- | libbb/lineedit.c | 4 |
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 | |||
135 | CONFIG_FEATURE_EDITING_MAX_LEN=1024 | 135 | CONFIG_FEATURE_EDITING_MAX_LEN=1024 |
136 | CONFIG_FEATURE_EDITING_VI=y | 136 | CONFIG_FEATURE_EDITING_VI=y |
137 | CONFIG_FEATURE_EDITING_HISTORY=1023 | 137 | CONFIG_FEATURE_EDITING_HISTORY=1023 |
138 | CONFIG_FEATURE_EDITING_HISTORY_DEFAULT=384 | ||
138 | CONFIG_FEATURE_EDITING_SAVEHISTORY=y | 139 | CONFIG_FEATURE_EDITING_SAVEHISTORY=y |
139 | # CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set | 140 | # CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set |
140 | CONFIG_FEATURE_REVERSE_SEARCH=y | 141 | CONFIG_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 | |||
135 | CONFIG_FEATURE_EDITING_MAX_LEN=1024 | 135 | CONFIG_FEATURE_EDITING_MAX_LEN=1024 |
136 | CONFIG_FEATURE_EDITING_VI=y | 136 | CONFIG_FEATURE_EDITING_VI=y |
137 | CONFIG_FEATURE_EDITING_HISTORY=1023 | 137 | CONFIG_FEATURE_EDITING_HISTORY=1023 |
138 | CONFIG_FEATURE_EDITING_HISTORY_DEFAULT=384 | ||
138 | CONFIG_FEATURE_EDITING_SAVEHISTORY=y | 139 | CONFIG_FEATURE_EDITING_SAVEHISTORY=y |
139 | # CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set | 140 | # CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set |
140 | CONFIG_FEATURE_REVERSE_SEARCH=y | 141 | CONFIG_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 | |||
135 | CONFIG_FEATURE_EDITING_MAX_LEN=1024 | 135 | CONFIG_FEATURE_EDITING_MAX_LEN=1024 |
136 | CONFIG_FEATURE_EDITING_VI=y | 136 | CONFIG_FEATURE_EDITING_VI=y |
137 | CONFIG_FEATURE_EDITING_HISTORY=1023 | 137 | CONFIG_FEATURE_EDITING_HISTORY=1023 |
138 | CONFIG_FEATURE_EDITING_HISTORY_DEFAULT=384 | ||
138 | CONFIG_FEATURE_EDITING_SAVEHISTORY=y | 139 | CONFIG_FEATURE_EDITING_SAVEHISTORY=y |
139 | # CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set | 140 | # CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set |
140 | CONFIG_FEATURE_REVERSE_SEARCH=y | 141 | CONFIG_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 | |||
135 | CONFIG_FEATURE_EDITING_MAX_LEN=1024 | 135 | CONFIG_FEATURE_EDITING_MAX_LEN=1024 |
136 | CONFIG_FEATURE_EDITING_VI=y | 136 | CONFIG_FEATURE_EDITING_VI=y |
137 | CONFIG_FEATURE_EDITING_HISTORY=1023 | 137 | CONFIG_FEATURE_EDITING_HISTORY=1023 |
138 | CONFIG_FEATURE_EDITING_HISTORY_DEFAULT=384 | ||
138 | CONFIG_FEATURE_EDITING_SAVEHISTORY=y | 139 | CONFIG_FEATURE_EDITING_SAVEHISTORY=y |
139 | # CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set | 140 | # CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set |
140 | CONFIG_FEATURE_REVERSE_SEARCH=y | 141 | CONFIG_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 | ||
2018 | typedef const char *get_exe_name_t(int i) FAST_FUNC; | 2023 | typedef const char *get_exe_name_t(int i) FAST_FUNC; |
2019 | typedef const char *sh_get_var_t(const char *name) FAST_FUNC; | 2024 | typedef const char *sh_get_var_t(const char *name) FAST_FUNC; |
2020 | typedef int sh_accept_glob_t(const char *name) FAST_FUNC; | 2025 | typedef 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 | ||
191 | config 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 | |||
191 | config FEATURE_EDITING_SAVEHISTORY | 201 | config 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 | ||
1586 | unsigned FAST_FUNC size_from_HISTFILESIZE(const char *hp) | 1586 | unsigned 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 |