diff options
Diffstat (limited to 'cad/spice/patches/patch-ai')
-rw-r--r-- | cad/spice/patches/patch-ai | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/cad/spice/patches/patch-ai b/cad/spice/patches/patch-ai new file mode 100644 index 00000000000..b432a715ced --- /dev/null +++ b/cad/spice/patches/patch-ai @@ -0,0 +1,84 @@ +$NetBSD: patch-ai,v 1.1 1999/10/01 17:05:15 dmcmahill Exp $ + +diff -cr spice3f4/src/lib/cp/history.c src/lib/cp/history.c +*** spice3f4/src/lib/cp/history.c Thu Jun 17 17:32:40 1993 +--- src/lib/cp/history.c Tue Nov 4 22:18:54 1997 +*************** +*** 11,16 **** +--- 11,24 ---- + #include "cpdefs.h" + #include "suffix.h" + ++ #ifdef HAS_GNUREADLINE ++ ++ /* Added GNU Readline Support -- Andrew Veliath <veliaa@rpi.edu> */ ++ #include <readline/readline.h> ++ #include <readline/history.h> ++ ++ #endif /* HAS_GNUREADLINE */ ++ + static char *dohs(); + static void freehist(); + static wordlist *dohmod(); +*************** +*** 19,24 **** +--- 27,33 ---- + static wordlist *hpattern(); + static wordlist *hprefix(); + ++ + struct histent *cp_lastone = NULL; + int cp_maxhistlength = 1000; + char cp_hat = '^'; +*************** +*** 345,352 **** +--- 354,363 ---- + cp_lastone->hi_next = NULL; + cp_lastone->hi_event = event; + cp_lastone->hi_wlist = wl_copy(wlist); ++ #ifndef HAS_GNUREADLINE + freehist(histlength - cp_maxhistlength); + histlength++; ++ #endif + return; + } + +*************** +*** 483,492 **** +--- 494,529 ---- + wl = wl->wl_next; + rev = true; + } ++ #ifdef HAS_GNUREADLINE ++ /* Added GNU Readline Support -- Andrew Veliath <veliaa@rpi.edu> */ ++ { ++ HIST_ENTRY *he; ++ int i, N; ++ ++ N = (wl == NULL) ? history_length : atoi(wl->wl_word); ++ ++ if (N < 0) N = 0; ++ if (N > history_length) N = history_length; ++ ++ if (rev) ++ for (i = history_length; i > 0 && N; --i, --N) { ++ he = history_get(i); ++ if (!he) return; ++ fprintf(cp_out, "%d\t%s\n", i, he->line); ++ } ++ else ++ for (i = history_length - N + 1; i <= history_length; ++i) { ++ he = history_get(i); ++ if (!he) return; ++ fprintf(cp_out, "%d\t%s\n", i, he->line); ++ } ++ } ++ #else + if (wl == NULL) + cp_hprint(cp_event - 1, cp_event - histlength, rev); + else + cp_hprint(cp_event - 1, cp_event - 1 - atoi(wl->wl_word), rev); ++ #endif /* ifelse HAS_GNUREADLINE */ + return; + } + |