libbb: new function bb_getgroups() - allocating wrapper around getgroups()
[oweals/busybox.git] / libbb / Config.src
index b02ea14b041bc338b35ea0c3bf1ca852140fd2e1..c516403059bc138495a1571cb117d332efaf14ac 100644 (file)
@@ -7,6 +7,30 @@ menu "Busybox Library Tuning"
 
 INSERT
 
 
 INSERT
 
+choice
+       prompt "Buffer allocation policy"
+       default FEATURE_BUFFERS_USE_MALLOC
+       help
+         There are 3 ways BusyBox can handle buffer allocations:
+         - Use malloc. This costs code size for the call to xmalloc.
+         - Put them on stack. For some very small machines with limited stack
+           space, this can be deadly. For most folks, this works just fine.
+         - Put them in BSS. This works beautifully for computers with a real
+           MMU (and OS support), but wastes runtime RAM for uCLinux. This
+           behavior was the only one available for BusyBox versions 0.48 and
+           earlier.
+
+config FEATURE_BUFFERS_USE_MALLOC
+       bool "Allocate with Malloc"
+
+config FEATURE_BUFFERS_GO_ON_STACK
+       bool "Allocate on the Stack"
+
+config FEATURE_BUFFERS_GO_IN_BSS
+       bool "Allocate in the .bss section"
+
+endchoice
+
 config PASSWORD_MINLEN
        int "Minimum password length"
        default 6
 config PASSWORD_MINLEN
        int "Minimum password length"
        default 6
@@ -46,24 +70,13 @@ config FEATURE_FAST_TOP
          but code size is slightly bigger.
 
 config FEATURE_ETC_NETWORKS
          but code size is slightly bigger.
 
 config FEATURE_ETC_NETWORKS
-       bool "Support for /etc/networks"
+       bool "Support /etc/networks"
        default n
        help
          Enable support for network names in /etc/networks. This is
          a rarely used feature which allows you to use names
          instead of IP/mask pairs in route command.
 
        default n
        help
          Enable support for network names in /etc/networks. This is
          a rarely used feature which allows you to use names
          instead of IP/mask pairs in route command.
 
-config FEATURE_USE_TERMIOS
-       bool "Use termios to manipulate the screen"
-       default y
-       depends on MORE || TOP || POWERTOP
-       help
-         This option allows utilities such as 'more' and 'top' to determine
-         the size of the screen. If you leave this disabled, your utilities
-         that display things on the screen will be especially primitive and
-         will be unable to determine the current screen size, and will be
-         unable to move the cursor.
-
 config FEATURE_EDITING
        bool "Command line editing"
        default y
 config FEATURE_EDITING
        bool "Command line editing"
        default y
@@ -114,7 +127,7 @@ config FEATURE_EDITING_SAVE_ON_EXIT
 config FEATURE_REVERSE_SEARCH
        bool "Reverse history search"
        default y
 config FEATURE_REVERSE_SEARCH
        bool "Reverse history search"
        default y
-       depends on FEATURE_EDITING_SAVEHISTORY
+       depends on FEATURE_EDITING
        help
          Enable readline-like Ctrl-R combination for reverse history search.
          Increases code by about 0.5k.
        help
          Enable readline-like Ctrl-R combination for reverse history search.
          Increases code by about 0.5k.
@@ -123,15 +136,11 @@ config FEATURE_TAB_COMPLETION
        bool "Tab completion"
        default y
        depends on FEATURE_EDITING
        bool "Tab completion"
        default y
        depends on FEATURE_EDITING
-       help
-         Enable tab completion.
 
 config FEATURE_USERNAME_COMPLETION
        bool "Username completion"
 
 config FEATURE_USERNAME_COMPLETION
        bool "Username completion"
-       default n
+       default y
        depends on FEATURE_TAB_COMPLETION
        depends on FEATURE_TAB_COMPLETION
-       help
-         Enable username completion.
 
 config FEATURE_EDITING_FANCY_PROMPT
        bool "Fancy shell prompts"
 
 config FEATURE_EDITING_FANCY_PROMPT
        bool "Fancy shell prompts"
@@ -153,6 +162,131 @@ config FEATURE_EDITING_ASK_TERMINAL
          correctly, or want to save on code size (about 400 bytes),
          then do not turn this option on.
 
          correctly, or want to save on code size (about 400 bytes),
          then do not turn this option on.
 
+config LOCALE_SUPPORT
+       bool "Enable locale support (system needs locale for this to work)"
+       default n
+       help
+         Enable this if your system has locale support and you would like
+         busybox to support locale settings.
+
+config UNICODE_SUPPORT
+       bool "Support Unicode"
+       default y
+       help
+         This makes various applets aware that one byte is not
+         one character on screen.
+
+         Busybox aims to eventually work correctly with Unicode displays.
+         Any older encodings are not guaranteed to work.
+         Probably by the time when busybox will be fully Unicode-clean,
+         other encodings will be mainly of historic interest.
+
+config UNICODE_USING_LOCALE
+       bool "Use libc routines for Unicode (else uses internal ones)"
+       default n
+       depends on UNICODE_SUPPORT && LOCALE_SUPPORT
+       help
+         With this option on, Unicode support is implemented using libc
+         routines. Otherwise, internal implementation is used.
+         Internal implementation is smaller.
+
+config FEATURE_CHECK_UNICODE_IN_ENV
+       bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
+       default n
+       depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
+       help
+         With this option on, Unicode support is activated
+         only if locale-related variables have the value of the form
+         "xxxx.utf8"
+
+         Otherwise, Unicode support will be always enabled and active.
+
+config SUBST_WCHAR
+       int "Character code to substitute unprintable characters with"
+       depends on UNICODE_SUPPORT
+       default 63
+       help
+         Typical values are 63 for '?' (works with any output device),
+         30 for ASCII substitute control code,
+         65533 (0xfffd) for Unicode replacement character.
+
+config LAST_SUPPORTED_WCHAR
+       int "Range of supported Unicode characters"
+       depends on UNICODE_SUPPORT
+       default 767
+       help
+         Any character with Unicode value bigger than this is assumed
+         to be non-printable on output device. Many applets replace
+         such characters with substitution character.
+
+         The idea is that many valid printable Unicode chars
+         nevertheless are not displayed correctly. Think about
+         combining charachers, double-wide hieroglyphs, obscure
+         characters in dozens of ancient scripts...
+         Many terminals, terminal emulators, xterms etc will fail
+         to handle them correctly. Choose the smallest value
+         which suits your needs.
+
+         Typical values are:
+         126 - ASCII only
+         767 (0x2ff) - there are no combining chars in [0..767] range
+                       (the range includes Latin 1, Latin Ext. A and B),
+                       code is ~700 bytes smaller for this case.
+         4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
+                       code is ~300 bytes smaller for this case.
+         12799 (0x31ff) - nearly all non-ideographic characters are
+                       available in [0..12799] range, including
+                       East Asian scripts like katakana, hiragana, hangul,
+                       bopomofo...
+         0 - off, any valid printable Unicode character will be printed.
+
+config UNICODE_COMBINING_WCHARS
+       bool "Allow zero-width Unicode characters on output"
+       default n
+       depends on UNICODE_SUPPORT
+       help
+         With this option off, any Unicode char with width of 0
+         is substituted on output.
+
+config UNICODE_WIDE_WCHARS
+       bool "Allow wide Unicode characters on output"
+       default n
+       depends on UNICODE_SUPPORT
+       help
+         With this option off, any Unicode char with width > 1
+         is substituted on output.
+
+config UNICODE_BIDI_SUPPORT
+       bool "Bidirectional character-aware line input"
+       default n
+       depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
+       help
+         With this option on, right-to-left Unicode characters
+         are treated differently on input (e.g. cursor movement).
+
+config UNICODE_NEUTRAL_TABLE
+       bool "In bidi input, support non-ASCII neutral chars too"
+       default n
+       depends on UNICODE_BIDI_SUPPORT
+       help
+         In most cases it's enough to treat only ASCII non-letters
+         (i.e. punctuation, numbers and space) as characters
+         with neutral directionality.
+         With this option on, more extensive (and bigger) table
+         of neutral chars will be used.
+
+config UNICODE_PRESERVE_BROKEN
+       bool "Make it possible to enter sequences of chars which are not Unicode"
+       default n
+       depends on UNICODE_SUPPORT
+       help
+         With this option on, on line-editing input (such as used by shells)
+         invalid UTF-8 bytes are not substituted with the selected
+         substitution character.
+         For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
+         at shell prompt will list file named 0xff (single char name
+         with char value 255), not file named '?'.
+
 config FEATURE_NON_POSIX_CP
        bool "Non-POSIX, but safer, copying to special nodes"
        default y
 config FEATURE_NON_POSIX_CP
        bool "Non-POSIX, but safer, copying to special nodes"
        default y
@@ -177,6 +311,19 @@ config FEATURE_VERBOSE_CP_MESSAGE
            cp: cannot stat '/vmlinuz/file': Not a directory
          This will cost you ~60 bytes.
 
            cp: cannot stat '/vmlinuz/file': Not a directory
          This will cost you ~60 bytes.
 
+config FEATURE_USE_SENDFILE
+       bool "Use sendfile system call"
+       default y
+       select PLATFORM_LINUX
+       help
+         When enabled, busybox will use the kernel sendfile() function
+         instead of read/write loops to copy data between file descriptors
+         (for example, cp command does this a lot).
+         If sendfile() doesn't work, copying code falls back to read/write
+         loop. sendfile() was originally implemented for faster I/O
+         from files to sockets, but since Linux 2.6.33 it was extended
+         to work for many more file types.
+
 config FEATURE_COPYBUF_KB
        int "Copy buffer size, in kilobytes"
        range 1 1024
 config FEATURE_COPYBUF_KB
        int "Copy buffer size, in kilobytes"
        range 1 1024