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
 
+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
@@ -46,24 +70,13 @@ config FEATURE_FAST_TOP
          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.
 
-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
@@ -114,7 +127,7 @@ config FEATURE_EDITING_SAVE_ON_EXIT
 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.
@@ -123,15 +136,11 @@ config FEATURE_TAB_COMPLETION
        bool "Tab completion"
        default y
        depends on FEATURE_EDITING
-       help
-         Enable tab completion.
 
 config FEATURE_USERNAME_COMPLETION
        bool "Username completion"
-       default n
+       default y
        depends on FEATURE_TAB_COMPLETION
-       help
-         Enable username completion.
 
 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.
 
+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
@@ -177,6 +311,19 @@ config FEATURE_VERBOSE_CP_MESSAGE
            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