lib: Save a few bytes of .text
[samba.git] / libcli / smbreadline / smbreadline.c
index cff25a7f5a554c6af6620706d7a46dfdb5143a4e..1a0f61c2cfed5d58354be3045bdaa19cc212f459 100644 (file)
@@ -71,13 +71,13 @@ static char *smb_readline_replacement(const char *prompt, void (*callback)(void)
                                char **(completion_fn)(const char *text, int start, int end))
 {
        char *line = NULL;
-       int fd = x_fileno(x_stdin);
+       int fd = fileno(stdin);
        char *ret;
 
        /* Prompt might be NULL in non-interactive mode. */
        if (prompt) {
-               x_fprintf(x_stdout, "%s", prompt);
-               x_fflush(x_stdout);
+               printf("%s", prompt);
+               fflush(stdout);
        }
 
        line = (char *)malloc(BUFSIZ);
@@ -93,7 +93,7 @@ static char *smb_readline_replacement(const char *prompt, void (*callback)(void)
                pfd.events = POLLIN|POLLHUP;
 
                if (sys_poll_intr(&pfd, 1, 5000) == 1) {
-                       ret = x_fgets(line, BUFSIZ, x_stdin);
+                       ret = fgets(line, BUFSIZ, stdin);
                        if (ret == 0) {
                                SAFE_FREE(line);
                        }
@@ -117,7 +117,7 @@ char *smb_readline(const char *prompt, void (*callback)(void),
        char *ret;
        bool interactive;
 
-       interactive = isatty(x_fileno(x_stdin)) || getenv("CLI_FORCE_INTERACTIVE");
+       interactive = isatty(fileno(stdin)) || getenv("CLI_FORCE_INTERACTIVE");
        if (!interactive) {
                return smb_readline_replacement(NULL, callback, completion_fn);
        }
@@ -137,11 +137,17 @@ char *smb_readline(const char *prompt, void (*callback)(void),
                works in all of them to date, but we get compiler
                warnings in some.  */
                rl_attempted_completion_function = RL_COMPLETION_CAST completion_fn;
+
+               /*
+                * We only want sensible characters as the word-break chars
+                * for the most part. This allows us to tab through a path.
+                */
+               rl_basic_word_break_characters = " \t\n";
        }
 
 #if HAVE_DECL_RL_EVENT_HOOK
        if (callback)
-               rl_event_hook = (Function *)callback;
+               rl_event_hook = (rl_hook_func_t *)callback;
 #endif
        ret = readline(prompt);
        if (ret && *ret)