svn commit: samba r15406 - in branches/SAMBA_4_0/source: client lib lib/registry/tools lib/replace lib/smbreadline

jelmer at samba.org jelmer at samba.org
Wed May 3 09:07:39 GMT 2006


Author: jelmer
Date: 2006-05-03 09:07:38 +0000 (Wed, 03 May 2006)
New Revision: 15406

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15406

Log:
Move 'smbreadline' out of libreplace as it doesn't replace functionality 
not available on some platforms but is a Samba-specific library.

Added:
   branches/SAMBA_4_0/source/lib/smbreadline/
   branches/SAMBA_4_0/source/lib/smbreadline/readline.m4
   branches/SAMBA_4_0/source/lib/smbreadline/smbreadline.c
   branches/SAMBA_4_0/source/lib/smbreadline/smbreadline.h
Removed:
   branches/SAMBA_4_0/source/lib/replace/readline.c
   branches/SAMBA_4_0/source/lib/replace/readline.m4
   branches/SAMBA_4_0/source/lib/replace/smbreadline.h
Modified:
   branches/SAMBA_4_0/source/client/client.c
   branches/SAMBA_4_0/source/lib/registry/tools/regshell.c
   branches/SAMBA_4_0/source/lib/replace/README
   branches/SAMBA_4_0/source/lib/replace/config.m4


Changeset:
Modified: branches/SAMBA_4_0/source/client/client.c
===================================================================
--- branches/SAMBA_4_0/source/client/client.c	2006-05-03 08:34:11 UTC (rev 15405)
+++ branches/SAMBA_4_0/source/client/client.c	2006-05-03 09:07:38 UTC (rev 15406)
@@ -38,7 +38,7 @@
 #include "system/time.h" /* needed by some systems for asctime() */
 #include "libcli/resolve/resolve.h"
 #include "libcli/security/security.h"
-#include "lib/replace/smbreadline.h"
+#include "lib/smbreadline/smbreadline.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
 
 static int io_bufsize = 64512;

Modified: branches/SAMBA_4_0/source/lib/registry/tools/regshell.c
===================================================================
--- branches/SAMBA_4_0/source/lib/registry/tools/regshell.c	2006-05-03 08:34:11 UTC (rev 15405)
+++ branches/SAMBA_4_0/source/lib/registry/tools/regshell.c	2006-05-03 09:07:38 UTC (rev 15406)
@@ -25,7 +25,7 @@
 #include "lib/events/events.h"
 #include "lib/registry/reg_backend_rpc.h"
 #include "system/time.h"
-#include "lib/replace/smbreadline.h"
+#include "lib/smbreadline/smbreadline.h"
 #include "librpc/gen_ndr/ndr_security.h"
 
 /* 

Modified: branches/SAMBA_4_0/source/lib/replace/README
===================================================================
--- branches/SAMBA_4_0/source/lib/replace/README	2006-05-03 08:34:11 UTC (rev 15405)
+++ branches/SAMBA_4_0/source/lib/replace/README	2006-05-03 09:07:38 UTC (rev 15406)
@@ -50,6 +50,7 @@
 pwrite
 getpass
 readline (the library)
+inet_ntoa
 
 Types:
 bool

Modified: branches/SAMBA_4_0/source/lib/replace/config.m4
===================================================================
--- branches/SAMBA_4_0/source/lib/replace/config.m4	2006-05-03 08:34:11 UTC (rev 15405)
+++ branches/SAMBA_4_0/source/lib/replace/config.m4	2006-05-03 09:07:38 UTC (rev 15406)
@@ -140,7 +140,6 @@
 #endif]
 )
 
-sinclude(lib/replace/readline.m4)
 sinclude(lib/replace/getpass.m4)
 
 dnl VA_COPY

Deleted: branches/SAMBA_4_0/source/lib/replace/readline.c
===================================================================
--- branches/SAMBA_4_0/source/lib/replace/readline.c	2006-05-03 08:34:11 UTC (rev 15405)
+++ branches/SAMBA_4_0/source/lib/replace/readline.c	2006-05-03 09:07:38 UTC (rev 15406)
@@ -1,164 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-   Samba readline wrapper implementation
-   Copyright (C) Simo Sorce 2001
-   Copyright (C) Andrew Tridgell 2001
-   
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#include "includes.h"
-#include "pstring.h"
-
-#include <unistd.h>
-#include "system/readline.h"
-
-/*******************************************************************
- Similar to sys_select() but catch EINTR and continue.
- This is what sys_select() used to do in Samba.
-********************************************************************/
-
-int sys_select_intr(int maxfd, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *tval)
-{
-	int ret;
-	fd_set *readfds2, readfds_buf, *writefds2, writefds_buf, *errorfds2, errorfds_buf;
-	struct timeval tval2, *ptval;
-
-	readfds2 = (readfds ? &readfds_buf : NULL);
-	writefds2 = (writefds ? &writefds_buf : NULL);
-	errorfds2 = (errorfds ? &errorfds_buf : NULL);
-	ptval = (tval ? &tval2 : NULL);
-
-	do {
-		if (readfds)
-			readfds_buf = *readfds;
-		if (writefds)
-			writefds_buf = *writefds;
-		if (errorfds)
-			errorfds_buf = *errorfds;
-		if (tval)
-			tval2 = *tval;
-
-		/* We must use select and not sys_select here. If we use
-		   sys_select we'd lose the fact a signal occurred when sys_select
-		   read a byte from the pipe. Fix from Mark Weaver
-		   <mark-clist at npsl.co.uk>
-		*/
-
-		ret = select(maxfd, readfds2, writefds2, errorfds2, ptval);
-	} while (ret == -1 && errno == EINTR);
-
-	if (readfds)
-		*readfds = readfds_buf;
-	if (writefds)
-		*writefds = writefds_buf;
-	if (errorfds)
-		*errorfds = errorfds_buf;
-
-	return ret;
-}
-
-/****************************************************************************
- Display the prompt and wait for input. Call callback() regularly
-****************************************************************************/
-
-static char *smb_readline_replacement(const char *prompt, void (*callback)(void), 
-				      char **(completion_fn)(const char *text, int start, int end))
-{
-	fd_set fds;
-	static pstring line;
-	struct timeval timeout;
-	int fd = STDIN_FILENO;
-	char *ret;
-
-	do_debug("%s", prompt);
-
-	while (1) {
-		timeout.tv_sec = 5;
-		timeout.tv_usec = 0;
-
-		FD_ZERO(&fds);
-		FD_SET(fd,&fds);
-	
-		if (sys_select_intr(fd+1,&fds,NULL,NULL,&timeout) == 1) {
-			ret = x_fgets(line, sizeof(line), x_stdin);
-			return ret;
-		}
-		if (callback)
-			callback();
-	}
-}
-
-/****************************************************************************
- Display the prompt and wait for input. Call callback() regularly.
-****************************************************************************/
-
-char *smb_readline(const char *prompt, void (*callback)(void), 
-		   char **(completion_fn)(const char *text, int start, int end))
-{
-#if HAVE_LIBREADLINE
-	if (isatty(STDIN_FILENO)) {
-		char *ret;
-
-		/* Aargh!  Readline does bizzare things with the terminal width
-		that mucks up expect(1).  Set CLI_NO_READLINE in the environment
-		to force readline not to be used. */
-
-		if (getenv("CLI_NO_READLINE"))
-			return smb_readline_replacement(prompt, callback, completion_fn);
-
-		if (completion_fn) {
-			/* The callback prototype has changed slightly between
-			different versions of Readline, so the same function
-			works in all of them to date, but we get compiler
-			warnings in some.  */
-			rl_attempted_completion_function = RL_COMPLETION_CAST completion_fn;
-		}
-
-		if (callback)
-			rl_event_hook = (Function *)callback;
-		ret = readline(prompt);
-		if (ret && *ret)
-			add_history(ret);
-		return ret;
-	} else
-#endif
-	return smb_readline_replacement(prompt, callback, completion_fn);
-}
-
-/****************************************************************************
- * return line buffer text
- ****************************************************************************/
-const char *smb_readline_get_line_buffer(void)
-{
-#if defined(HAVE_LIBREADLINE)
-	return rl_line_buffer;
-#else
-	return NULL;
-#endif
-}
-
-/****************************************************************************
- * set completion append character
- ***************************************************************************/
-void smb_readline_ca_char(char c)
-{
-#if defined(HAVE_LIBREADLINE)
-	rl_completion_append_character = c;
-#endif
-}
-
-
-

Deleted: branches/SAMBA_4_0/source/lib/replace/readline.m4
===================================================================
--- branches/SAMBA_4_0/source/lib/replace/readline.m4	2006-05-03 08:34:11 UTC (rev 15405)
+++ branches/SAMBA_4_0/source/lib/replace/readline.m4	2006-05-03 09:07:38 UTC (rev 15406)
@@ -1,81 +0,0 @@
-###############################################
-# Readline included by default unless explicitly asked not to
-test "${with_readline+set}" != "set" && with_readline=yes
-
-EXTERNAL_READLINE=no
-# test for where we get readline() from
-AC_MSG_CHECKING(whether to use readline)
-AC_ARG_WITH(readline,
-[  --with-readline[=DIR]   Look for readline include/libs in DIR (default=auto) ],
-[  case "$with_readline" in
-  yes)
-    AC_MSG_RESULT(yes)
-
-    AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
-    AC_CHECK_HEADERS(readline/history.h)
-
-    AC_CHECK_HEADERS(readline.h readline/readline.h,[
-      for termlib in ncurses curses termcap terminfo termlib tinfo; do
-       AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
-      done
-      AC_CHECK_LIB(readline, rl_callback_handler_install,
-       [TERMLIBS="-lreadline $TERMLIBS"
-       EXTERNAL_READLINE=yes
-       break], [TERMLIBS=], $TERMLIBS)])
-    ;;
-  no)
-    AC_MSG_RESULT(no)
-    ;;
-  *)
-    AC_MSG_RESULT(yes)
-
-    # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
-    # alternate readline path
-    _ldflags=${LDFLAGS}
-    _cppflags=${CPPFLAGS}
-
-    # Add additional search path
-    LDFLAGS="-L$with_readline/lib $LDFLAGS"
-    CPPFLAGS="-I$with_readline/include $CPPFLAGS"
-
-    AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
-    AC_CHECK_HEADERS(readline/history.h)
-
-    AC_CHECK_HEADERS(readline.h readline/readline.h,[
-      for termlib in ncurses curses termcap terminfo termlib; do
-       AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
-      done
-      AC_CHECK_LIB(readline, rl_callback_handler_install,
-       [TERMLDFLAGS="-L$with_readline/lib"
-       TERMCPPFLAGS="-I$with_readline/include"
-       LDFLAGS="-L$with_readline/lib $LDFLAGS"
-       CPPFLAGS="-I$with_readline/include $CPPFLAGS"
-       TERMLIBS="-lreadline $TERMLIBS"
-       EXTERNAL_READLINE=yes
-       break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
-
-    ;;
-  esac],
-  AC_MSG_RESULT(no)
-)
-
-# The readline API changed slightly from readline3 to readline4, so
-# code will generate warnings on one of them unless we have a few
-# special cases.
-AC_CHECK_LIB(readline, rl_completion_matches,
-	     [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1, 
-			[Do we have rl_completion_matches?])],
-	     [],
-	     [$TERMLIBS])
-
-AC_MSG_CHECKING(whether to use extern readline)
-if test x"$EXTERNAL_READLINE" = x"yes"; then
-	AC_MSG_RESULT(yes)
-	AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
-	SMB_SUBSYSTEM(SMBREADLINE, [lib/replace/readline.o], [READLINE])
-	SMB_EXT_LIB(READLINE, [${TERMLIBS}])
-	SMB_ENABLE(READLINE,YES)
-else
-	SMB_SUBSYSTEM(SMBREADLINE, [lib/replace/readline.o], [])
-	AC_MSG_RESULT(no)
-fi

Deleted: branches/SAMBA_4_0/source/lib/replace/smbreadline.h
===================================================================
--- branches/SAMBA_4_0/source/lib/replace/smbreadline.h	2006-05-03 08:34:11 UTC (rev 15405)
+++ branches/SAMBA_4_0/source/lib/replace/smbreadline.h	2006-05-03 09:07:38 UTC (rev 15406)
@@ -1,9 +0,0 @@
-#ifndef __SMBREADLINE_H__
-#define __SMBREADLINE_H__
-
-char *smb_readline(const char *prompt, void (*callback)(void), 
-		   char **(completion_fn)(const char *text, int start, int end));
-const char *smb_readline_get_line_buffer(void);
-void smb_readline_ca_char(char c);
-
-#endif /* __SMBREADLINE_H__ */

Copied: branches/SAMBA_4_0/source/lib/smbreadline/readline.m4 (from rev 15389, branches/SAMBA_4_0/source/lib/replace/readline.m4)
===================================================================
--- branches/SAMBA_4_0/source/lib/replace/readline.m4	2006-05-02 05:14:00 UTC (rev 15389)
+++ branches/SAMBA_4_0/source/lib/smbreadline/readline.m4	2006-05-03 09:07:38 UTC (rev 15406)
@@ -0,0 +1,81 @@
+###############################################
+# Readline included by default unless explicitly asked not to
+test "${with_readline+set}" != "set" && with_readline=yes
+
+EXTERNAL_READLINE=no
+# test for where we get readline() from
+AC_MSG_CHECKING(whether to use readline)
+AC_ARG_WITH(readline,
+[  --with-readline[=DIR]   Look for readline include/libs in DIR (default=auto) ],
+[  case "$with_readline" in
+  yes)
+    AC_MSG_RESULT(yes)
+
+    AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
+    AC_CHECK_HEADERS(readline/history.h)
+
+    AC_CHECK_HEADERS(readline.h readline/readline.h,[
+      for termlib in ncurses curses termcap terminfo termlib tinfo; do
+       AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
+      done
+      AC_CHECK_LIB(readline, rl_callback_handler_install,
+       [TERMLIBS="-lreadline $TERMLIBS"
+       EXTERNAL_READLINE=yes
+       break], [TERMLIBS=], $TERMLIBS)])
+    ;;
+  no)
+    AC_MSG_RESULT(no)
+    ;;
+  *)
+    AC_MSG_RESULT(yes)
+
+    # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
+    # alternate readline path
+    _ldflags=${LDFLAGS}
+    _cppflags=${CPPFLAGS}
+
+    # Add additional search path
+    LDFLAGS="-L$with_readline/lib $LDFLAGS"
+    CPPFLAGS="-I$with_readline/include $CPPFLAGS"
+
+    AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
+    AC_CHECK_HEADERS(readline/history.h)
+
+    AC_CHECK_HEADERS(readline.h readline/readline.h,[
+      for termlib in ncurses curses termcap terminfo termlib; do
+       AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
+      done
+      AC_CHECK_LIB(readline, rl_callback_handler_install,
+       [TERMLDFLAGS="-L$with_readline/lib"
+       TERMCPPFLAGS="-I$with_readline/include"
+       LDFLAGS="-L$with_readline/lib $LDFLAGS"
+       CPPFLAGS="-I$with_readline/include $CPPFLAGS"
+       TERMLIBS="-lreadline $TERMLIBS"
+       EXTERNAL_READLINE=yes
+       break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
+
+    ;;
+  esac],
+  AC_MSG_RESULT(no)
+)
+
+# The readline API changed slightly from readline3 to readline4, so
+# code will generate warnings on one of them unless we have a few
+# special cases.
+AC_CHECK_LIB(readline, rl_completion_matches,
+	     [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1, 
+			[Do we have rl_completion_matches?])],
+	     [],
+	     [$TERMLIBS])
+
+AC_MSG_CHECKING(whether to use extern readline)
+if test x"$EXTERNAL_READLINE" = x"yes"; then
+	AC_MSG_RESULT(yes)
+	AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
+	SMB_SUBSYSTEM(SMBREADLINE, [lib/smbreadline/smbreadline.o], [READLINE])
+	SMB_EXT_LIB(READLINE, [${TERMLIBS}])
+	SMB_ENABLE(READLINE,YES)
+else
+	SMB_SUBSYSTEM(SMBREADLINE, [lib/smbreadline/smbreadline.o], [])
+	AC_MSG_RESULT(no)
+fi

Copied: branches/SAMBA_4_0/source/lib/smbreadline/smbreadline.c (from rev 15389, branches/SAMBA_4_0/source/lib/replace/readline.c)

Copied: branches/SAMBA_4_0/source/lib/smbreadline/smbreadline.h (from rev 15389, branches/SAMBA_4_0/source/lib/replace/smbreadline.h)



More information about the samba-cvs mailing list