Update of /cvsroot/fink/dists/10.7/stable/main/finkinfo/utils In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv7408
Modified Files: expect.patch Log Message: update x86_64 variant to 5.45 and assume maintainership Index: expect.patch =================================================================== RCS file: /cvsroot/fink/dists/10.7/stable/main/finkinfo/utils/expect.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- expect.patch 21 Jul 2011 17:52:14 -0000 1.1 +++ expect.patch 15 Jul 2013 23:40:30 -0000 1.2 @@ -1,234 +1,84 @@ -diff -up expect-5.43/exp_chan.c.spawn expect-5.43/exp_chan.c ---- expect-5.43/exp_chan.c.spawn 2005-02-08 03:01:20.000000000 +0100 -+++ expect-5.43/exp_chan.c 2008-09-25 12:22:14.000000000 +0200 -@@ -622,6 +622,7 @@ expCreateChannel(interp,fdin,fdout,pid) - esPtr->buffer = Tcl_NewStringObj("",0); - Tcl_IncrRefCount(esPtr->buffer); - esPtr->umsize = exp_default_match_max; -+ esPtr->umsize_changed = exp_default_match_max_changed; - /* this will reallocate object with an appropriate sized buffer */ - expAdjust(esPtr); - -diff -up expect-5.43/exp_command.h.spawn expect-5.43/exp_command.h ---- expect-5.43/exp_command.h.spawn 2004-07-30 17:35:28.000000000 +0200 -+++ expect-5.43/exp_command.h 2008-09-25 12:22:14.000000000 +0200 -@@ -30,6 +30,7 @@ would appreciate credit if this program - EXTERN char * exp_get_var _ANSI_ARGS_((Tcl_Interp *,char *)); +--- expect5.45/exp_inter.c.orig 2013-07-14 13:25:14.000000000 -0400 ++++ expect5.45/exp_inter.c 2013-07-14 13:30:18.000000000 -0400 +@@ -404,8 +404,8 @@ + int matchBytes) + { + int seenBytes; /* either printed or echoed */ +- int echoBytes; +- int offsetBytes; ++ int echoBytes = 0; ++ int offsetBytes = 0; - EXTERN int exp_default_match_max; -+EXTERN int exp_default_match_max_changed; - EXTERN int exp_default_parity; - EXTERN int exp_default_rm_nulls; - EXTERN int exp_default_close_on_eof; -@@ -103,6 +104,7 @@ typedef struct ExpState { - int msize; /* # of bytes that buffer can hold (max) */ - int umsize; /* # of bytes (min) that is guaranteed to match */ - /* this comes from match_max command */ -+ int umsize_changed; /* is umsize changed by user? */ - int printed; /* # of bytes written to stdout (if logging on) */ - /* but not actually returned via a match yet */ - int echoed; /* additional # of bytes (beyond "printed" above) */ -diff -up expect-5.43/expect.c.spawn expect-5.43/expect.c ---- expect-5.43/expect.c.spawn 2004-07-07 01:26:02.000000000 +0200 -+++ expect-5.43/expect.c 2008-09-25 12:22:14.000000000 +0200 -@@ -41,8 +41,17 @@ would appreciate credit if this program - #include "tcldbg.h" - #endif + /* write is unlikely to fail, since we just read from same descriptor */ + seenBytes = esPtr->printed + esPtr->echoed; +@@ -437,7 +437,7 @@ + int key) + { + Tcl_UniChar *eobOld; /* old end of buffer */ +- int cc; ++ int cc = 0; + int numchars; + Tcl_UniChar *str; -+/* The initial length is 2000. We increment it by 2000. The maximum -+ is 8MB (0x800000). */ -+#define EXP_MATCH_MAX 2000 -+#define EXP_MATCH_INC 2000 -+#define EXP_MATCH_STEP_LIMIT 0x700000 -+#define EXP_MATCH_LIMIT 0x800000 -+#define EXP_MATCH_LIMIT_QUOTE "0x800000" -+ - /* initial length of strings that we can guarantee patterns can match */ --int exp_default_match_max = 2000; -+int exp_default_match_max = EXP_MATCH_MAX; -+int exp_default_match_max_changed = 0; - #define INIT_EXPECT_TIMEOUT_LIT "10" /* seconds */ - #define INIT_EXPECT_TIMEOUT 10 /* seconds */ - int exp_default_parity = TRUE; -@@ -1619,6 +1628,76 @@ expNullStrip(obj,offsetBytes) - return newsize; - } +--- expect5.45/expect.c.orig 2013-07-14 13:28:09.000000000 -0400 ++++ expect5.45/expect.c 2010-10-26 18:09:36.000000000 -0400 +@@ -2899,7 +2899,7 @@ + int def = FALSE; + char* chan = NULL; + int i; +- ExpState *esPtr; ++ ExpState *esPtr = NULL; -+/* returns # of bytes until we see a newline at the end or EOF. */ -+/*ARGSUSED*/ -+static int -+expReadNewLine(interp,esPtr,save_flags) /* INTL */ -+Tcl_Interp *interp; -+ExpState *esPtr; -+int save_flags; -+{ -+ int size; -+ int exp_size; -+ int full_size; -+ int count; -+ char *str; -+ -+ count = 0; -+ for (;;) { -+ exp_size = expSizeGet(esPtr); -+ -+ /* When we reach the limit, we will only read one char at a -+ time. */ -+ if (esPtr->umsize >= EXP_MATCH_STEP_LIMIT) -+ size = TCL_UTF_MAX; -+ else -+ size = exp_size; -+ -+ if (exp_size + TCL_UTF_MAX >= esPtr->msize) { -+ if (esPtr->umsize >= EXP_MATCH_LIMIT) { -+ expDiagLogU("WARNING: interact buffer is full. probably your program\r\n"); -+ expDiagLogU("is not interactive or has a very long output line. The\r\n"); -+ expDiagLogU("current limit is " EXP_MATCH_LIMIT_QUOTE ".\r\n"); -+ expDiagLogU("Dumping first half of buffer in order to continue\r\n"); -+ expDiagLogU("Recommend you enlarge the buffer.\r\n"); -+ exp_buffer_shuffle(interp,esPtr,save_flags,EXPECT_OUT,"expect"); -+ return count; -+ } -+ else { -+ esPtr->umsize += EXP_MATCH_INC; -+ expAdjust(esPtr); -+ } -+ } -+ -+ full_size = esPtr->msize - (size / TCL_UTF_MAX); -+ size = Tcl_ReadChars(esPtr->channel, -+ esPtr->buffer, -+ full_size, -+ 1 /* append */); -+ if (size > 0) { -+ count += size; -+ /* We try again if there are more to read and we haven't -+ seen a newline at the end. */ -+ if (size == full_size) { -+ str = Tcl_GetStringFromObj(esPtr->buffer, &size); -+ if (str[size - 1] != '\n') -+ continue; -+ } -+ } -+ else { -+ /* It is even trickier. We got an error from read. We have -+ to recover from it. Let's make sure the size of -+ buffer is correct. It can be corrupted. */ -+ str = Tcl_GetString(esPtr->buffer); -+ Tcl_SetObjLength(esPtr->buffer, strlen(str)); -+ } -+ -+ break; -+ } -+ -+ return count; -+} -+ - /* returns # of bytes read or (non-positive) error of form EXP_XXX */ - /* returns 0 for end of file */ - /* If timeout is non-zero, set an alarm before doing the read, else assume */ -@@ -1633,6 +1712,8 @@ int save_flags; + for (i=1; i<objc; i++) { + char *name; +--- expect5.45/exp_log.c.orig 2013-07-14 13:41:34.000000000 -0400 ++++ expect5.45/exp_log.c 2013-07-14 13:41:56.000000000 -0400 +@@ -85,7 +85,7 @@ + Tcl_UniChar *buf; + int lenChars; { - int cc = EXP_TIMEOUT; - int size = expSizeGet(esPtr); -+ int full_size; -+ int count; +- int wc; ++ int wc = 0; + ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey); - if (size + TCL_UTF_MAX >= esPtr->msize) - exp_buffer_shuffle(interp,esPtr,save_flags,EXPECT_OUT,"expect"); -@@ -1649,11 +1730,43 @@ int save_flags; - } - #endif + if (esPtr->valid) +--- expect5.45/expect.c.orig 2013-07-14 13:43:25.000000000 -0400 ++++ expect5.45/expect.c 2013-07-14 13:44:06.000000000 -0400 +@@ -2363,7 +2363,12 @@ -- -+ /* FIXME: If we ask less than what is available in the tcl buffer -+ when tcl has seen EOF, we will throw away the remaining data -+ since the next read will get EOF. Since expect is line-oriented, -+ we exand our buffer to get EOF or the next newline at the end of -+ the input buffer. I don't know if it is the right fix. H.J. */ -+ count = 0; -+ full_size = esPtr->msize - (size / TCL_UTF_MAX); - cc = Tcl_ReadChars(esPtr->channel, -- esPtr->buffer, -- esPtr->msize - (size / TCL_UTF_MAX), -- 1 /* append */); -+ esPtr->buffer, -+ full_size, -+ 1 /* append */); -+ if (cc > 0) { -+ count += cc; -+ /* It gets very tricky. There are more to read. We will expand -+ our buffer and get EOF or a newline at the end unless the -+ buffer length has been changed. */ -+ if (cc == full_size) { -+ char *str; -+ str = Tcl_GetStringFromObj(esPtr->buffer, &size); -+ if (str[size - 1] != '\n') { -+ if (esPtr->umsize_changed) { -+ char buf[20]; /* big enough for 64bit int in hex. */ -+ snprintf(buf,sizeof(buf),"0x%x", esPtr->umsize); -+ expDiagLogU("WARNING: interact buffer is not large enough to hold\r\n"); -+ expDiagLogU("all output. probably your program is not interactive or\r\n"); -+ expDiagLogU("has a very long output line. The current limit is "); -+ expDiagLogU(buf); -+ expDiagLogU(".\r\n"); -+ } -+ else { -+ cc = expReadNewLine(interp,esPtr,save_flags); -+ if (cc > 0) -+ count += cc; -+ } + /* "!e" means no case matched - transfer by default */ + if (!e || e->transfer) { +- int remainder = numchars-match; ++ int remainder; ++ if (match > numchars) { ++ match = numchars; ++ eo->matchlen = match; + } -+ } -+ } - i_read_errno = errno; - - #ifdef SIMPLE_EVENT -@@ -1674,7 +1787,7 @@ int save_flags; - } - } - #endif -- return cc; -+ return count > 0 ? count : cc; - } - - /* -@@ -2751,8 +2864,14 @@ char **argv; - return(TCL_ERROR); - } - -- if (Default) exp_default_match_max = size; -- else esPtr->umsize = size; -+ if (Default) { -+ exp_default_match_max = size; -+ exp_default_match_max_changed = 1; -+ } -+ else { -+ esPtr->umsize = size; -+ esPtr->umsize_changed = 1; -+ } - - return(TCL_OK); ++ remainder = numchars-match; + /* delete matched chars from input buffer */ + esPtr->printed -= match; + if (numchars != 0) { +--- expect5.45/exp_clib.c.orig 2013-07-15 08:54:50.000000000 -0400 ++++ expect5.45/exp_clib.c 2013-07-15 08:55:35.000000000 -0400 +@@ -1476,8 +1476,8 @@ + char *str; + { + if (exp_is_debugging) { +- fprintf(stderr,str); +- if (exp_logfile) fprintf(exp_logfile,str); ++ fprintf(stderr,"%s",str); ++ if (exp_logfile) fprintf(exp_logfile,"%s",str); + } } -diff -up expect-5.43/Dbg.c.tcl8.5 expect-5.43/Dbg.c ---- expect-5.43/Dbg.c.tcl8.5 2002-03-23 05:11:54.000000000 +0100 -+++ expect-5.43/Dbg.c 2008-09-25 12:25:40.000000000 +0200 -@@ -10,6 +10,7 @@ would appreciate credit if this program - - #include <stdio.h> -+#include "expect_cf.h" - #include "tcldbgcf.h" - #if 0 - /* tclInt.h drags in stdlib. By claiming no-stdlib, force it to drag in */ -diff -up expect-5.43/exp_inter.c.tcl8.5 expect-5.43/exp_inter.c ---- expect-5.43/exp_inter.c.tcl8.5 2004-08-18 04:03:00.000000000 +0200 -+++ expect-5.43/exp_inter.c 2008-09-25 12:25:40.000000000 +0200 -@@ -36,6 +36,7 @@ would appreciate credit if this program - #include <ctype.h> - - #include "tcl.h" -+#include "tclInt.h" - #include "string.h" +--- expect5.45/pty_termios.c.orig 2013-07-15 08:56:10.000000000 -0400 ++++ expect5.45/pty_termios.c 2013-07-15 08:56:40.000000000 -0400 +@@ -641,7 +641,7 @@ + if (0 > (slave = open(slave_name, O_RDWR))) { + static char buf[500]; + exp_pty_error = buf; +- sprintf(exp_pty_error,"open(%s,rw) = %d (%s)",slave_name,slave,expErrnoMsg(errno)); ++ sprintf(exp_pty_error,"open(%s,rw) = %d (%d)",slave_name,slave,expErrnoMsg(errno)); + return(-1); + } - #include "exp_tty_in.h" ------------------------------------------------------------------------------ See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk _______________________________________________ Fink-commits mailing list Fink-commits@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.cvs