- printf("Cmd? ");
- if (!fgets(cmd_buf, sizeof(cmd_buf), file))
- break;
- if (do_command(cmd_buf))
+ {
+ char prompt[40];
+ sprintf(prompt, (strlen(default_dn) < 18
+ ? "saucer dn=%s> "
+ : "saucer dn=%.15s..> "), default_dn);
+#ifndef HAVE_READLINE
+ fputs (prompt, stdout);
+#else
+ buf = readline (prompt);
+ if (!buf)
+ break;
+ add_history (buf);
+#endif
+ }
+#ifdef HAVE_READLINE
+ else
+#endif
+ {
+ if (!fgets(cmd_buf, sizeof(cmd_buf), file))
+ break;
+ }
+
+ status = do_command(buf);
+#ifdef HAVE_READLINE
+ if (tty)
+ free(buf);
+#endif
+ if (status)