summaryrefslogtreecommitdiff
path: root/cad
diff options
context:
space:
mode:
authorYoshio MITA <mita@FreeBSD.org>2001-10-09 11:21:39 +0000
committerYoshio MITA <mita@FreeBSD.org>2001-10-09 11:21:39 +0000
commitc4f8b80b14928dbaaaaba3d5a347c2dc76a556b7 (patch)
treed89407189784d0282a19ea80c63996845e9edc23 /cad
parent1. Use ghostscript/ for DIST_SUBDIR (suggested by knu) (diff)
Applied patch for maintainer's update.
PR: ports/30875 Submitted by: the maintainer
Notes
Notes: svn path=/head/; revision=48597
Diffstat (limited to 'cad')
-rw-r--r--cad/cider/Makefile2
-rw-r--r--cad/cider/files/patch-ad410
-rw-r--r--cad/cider/files/patch-bc410
3 files changed, 395 insertions, 427 deletions
diff --git a/cad/cider/Makefile b/cad/cider/Makefile
index 2a454c249d1a..2e2e8f27b7d6 100644
--- a/cad/cider/Makefile
+++ b/cad/cider/Makefile
@@ -7,7 +7,7 @@
PORTNAME= cider
PORTVERSION= 1.b1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= cad
MASTER_SITES= ftp://ic.eecs.berkeley.edu/pub/Cider/new/
DISTNAME= cider1b1
diff --git a/cad/cider/files/patch-ad b/cad/cider/files/patch-ad
index e23701f545f1..2762c1e16cd7 100644
--- a/cad/cider/files/patch-ad
+++ b/cad/cider/files/patch-ad
@@ -1,213 +1,197 @@
-*** spice/common/src/bin/main.c.orig Sat Mar 12 08:22:28 1994
---- spice/common/src/bin/main.c Tue Oct 24 03:32:20 2000
-***************
-*** 25,30 ****
---- 25,37 ----
- #include <pwd.h>
- #endif
-
-+ #ifdef HAS_GNUREADLINE
-+ /* Added GNU Readline Support 11/3/97 -- Andrew Veliath <veliaa@rpi.edu> */
-+ #include <readline/readline.h>
-+ #include <readline/history.h>
-+ #include "fteinput.h"
-+ #endif
-+
- #ifdef HAS_UNIX_SIGS
- #include <signal.h>
- #endif
-***************
-*** 36,41 ****
---- 43,53 ----
- #endif
-
- #include "patchlev.h"
-+
-+ #ifdef __FreeBSD__
-+ #include <ieeefp.h>
-+ #endif
-+
- #include "suffix.h"
-
- /* (Virtual) Machine architecture parameters */
-***************
-*** 53,58 ****
---- 65,75 ----
- bool ft_intrpt = false; /* Set by the (void) signal handlers. */
- bool ft_setflag = false; /* Don't abort after an interrupt. */
-
-+ #ifdef HAS_GNUREADLINE
-+ char gnu_history_file[512];
-+ static char *application_name;
-+ #endif
-+
- struct variable *(*if_getparam)( );
-
- #ifdef BATCH
-***************
-*** 185,190 ****
---- 202,294 ----
-
- #endif
-
-+ #ifdef HAS_GNUREADLINE
-+ /* Adapted ../lib/cp/lexical.c:prompt() for GNU Readline -- Andrew Veliath <veliaa@rpi.edu> */
-+ static char *
-+ prompt()
-+ {
-+ static char pbuf[128];
-+ int n = sizeof(pbuf);
-+ char *p = pbuf, *s;
-+
-+ if (cp_interactive == false)
-+ return;
-+ if (cp_promptstring == NULL)
-+ s = "-> ";
-+ else
-+ s = cp_promptstring;
-+ if (cp_altprompt)
-+ s = cp_altprompt;
-+ while (*s && (n > 1)) {
-+ int w;
-+ switch (strip(*s)) {
-+ case '!':
-+ w = snprintf(p, n, "%d", where_history() + 1);
-+ w = (w >= n) ? n - 1 : w;
-+ p += w;
-+ n -= w;
-+ break;
-+ default:
-+ *p = strip(*s); ++p;
-+ --n;
-+ break;
-+ }
-+ s++;
-+ }
-+ *p = 0;
-+ return pbuf;
-+ }
-+
-+ /* Process device events in Readline's hook since there is no where
-+ else to do it now - AV */
-+ int rl_event_func()
-+ {
-+ static REQUEST reqst = { checkup_option, 0 };
-+ Input(&reqst, NULL);
-+ return 0;
-+ }
-+
-+ /* Added GNU Readline Support -- Andrew Veliath <veliaa@rpi.edu> */
-+ void app_rl_readlines()
-+ {
-+ char *line, *expanded_line;
-+
-+ strcpy(gnu_history_file, getenv("HOME"));
-+ strcat(gnu_history_file, "/.");
-+ strcat(gnu_history_file, application_name);
-+ strcat(gnu_history_file, "_history");
-+
-+ using_history();
-+ read_history(gnu_history_file);
-+
-+ rl_readline_name = application_name;
-+ rl_instream = cp_in;
-+ rl_outstream = cp_out;
-+ rl_event_hook = rl_event_func;
-+
-+ while (1) {
-+ history_set_pos(history_length);
-+ line = readline(prompt());
-+ if (line && *line) {
-+ int s = history_expand(line, &expanded_line);
-+
-+ if (s == 2) {
-+ fprintf(stderr, "-> %s\n", expanded_line);
-+ } else if (s == -1) {
-+ fprintf(stderr, "readline: %s\n", expanded_line);
-+ } else {
-+ cp_evloop(expanded_line);
-+ add_history(expanded_line);
-+ }
-+ free(expanded_line);
-+ }
-+ if (line) free(line);
-+ else if (line == NULL) cp_evloop("quit");
-+ }
-+ /* History gets written in ../fte/misccoms.c com_quit */
-+ }
-+ #endif /* HAS_GNUREADLINE */
-+
- char *hlp_filelist[] = { "spice", 0 };
-
- void
-***************
-*** 216,221 ****
---- 320,329 ----
-
- #endif
-
-+ #ifdef __FreeBSD__
-+ fpsetmask(fpgetmask() & ~FP_X_INV & ~FP_X_DZ & ~FP_X_OFL);
-+ #endif
-+
- /* MFB tends to jump to 0 on errors. This tends to catch it. */
- if (started) {
- fprintf(cp_err, "main: Internal Error: jump to zero\n");
-***************
-*** 236,241 ****
---- 344,356 ----
- ARCHsize = 1;
- #endif /* PARALLEL_ARCH */
-
-+ #ifdef HAS_GNUREADLINE
-+ if (!(application_name = strrchr(av[0],'/')))
-+ application_name = av[0];
-+ else
-+ ++application_name;
-+ #endif
-+
- #ifdef HAS_MAC_ARGCARGV
- ac = initmac(&av);
- #endif
-***************
-*** 472,478 ****
---- 587,597 ----
- # ifdef HAS_UNIX_SIGS
- /* Set up (void) signal handling */
- if (!ft_batchmode) {
-+ # ifdef HAS_GNUREADLINE
-+ (void) signal(SIGINT, SIG_IGN);
-+ # else
- (void) signal(SIGINT, ft_sigintr);
-+ # endif
- (void) signal(SIGFPE, sigfloat);
- # ifdef SIGTSTP
- (void) signal(SIGTSTP, sigstop);
-***************
-*** 668,674 ****
---- 787,797 ----
- } else {
- (void) setjmp(jbuf);
- cp_interactive = true;
-+ #ifdef HAS_GNUREADLINE
-+ app_rl_readlines();
-+ #else
- while (cp_evloop((char *) NULL) == 1) ;
-+ #endif /* ifelse HAS_GNUREADLINE */
- }
-
- # else /* if BATCH */
-***************
-*** 708,714 ****
---- 831,841 ----
- /* Nutmeg "main" */
- (void) setjmp(jbuf);
- cp_interactive = true;
-+ #ifdef HAS_GNUREADLINE
-+ app_rl_readlines();
-+ #else
- while (cp_evloop((char *) NULL) == 1) ;
-+ #endif /* ifelse HAS_GNUREADLINE */
-
- #endif
-
+--- spice/common/src/bin/main.c.orig Sat Mar 12 08:22:28 1994
++++ spice/common/src/bin/main.c Wed Sep 19 11:06:34 2001
+@@ -25,6 +25,13 @@
+ #include <pwd.h>
+ #endif
+
++#ifdef HAS_GNUREADLINE
++/* Added GNU Readline Support 11/3/97 -- Andrew Veliath <veliaa@rpi.edu> */
++#include <readline/readline.h>
++#include <readline/history.h>
++#include "fteinput.h"
++#endif
++
+ #ifdef HAS_UNIX_SIGS
+ #include <signal.h>
+ #endif
+@@ -36,6 +43,11 @@
+ #endif
+
+ #include "patchlev.h"
++
++#ifdef __FreeBSD__
++#include <ieeefp.h>
++#endif
++
+ #include "suffix.h"
+
+ /* (Virtual) Machine architecture parameters */
+@@ -53,6 +65,11 @@
+ bool ft_intrpt = false; /* Set by the (void) signal handlers. */
+ bool ft_setflag = false; /* Don't abort after an interrupt. */
+
++#ifdef HAS_GNUREADLINE
++char gnu_history_file[512];
++static char *application_name;
++#endif
++
+ struct variable *(*if_getparam)( );
+
+ #ifdef BATCH
+@@ -185,6 +202,95 @@
+
+ #endif
+
++#ifdef HAS_GNUREADLINE
++/* Adapted ../lib/cp/lexical.c:prompt() for GNU Readline -- Andrew Veliath <veliaa@rpi.edu> */
++static char *
++prompt()
++{
++ static char pbuf[128];
++ int n = sizeof(pbuf);
++ char *p = pbuf, *s;
++
++ if (cp_interactive == false)
++ return;
++ if (cp_promptstring == NULL)
++ s = "-> ";
++ else
++ s = cp_promptstring;
++ if (cp_altprompt)
++ s = cp_altprompt;
++ while (*s && (n > 1)) {
++ int w;
++ switch (strip(*s)) {
++ case '!':
++ w = snprintf(p, n, "%d", where_history() + 1);
++ w = (w >= n) ? n - 1 : w;
++ p += w;
++ n -= w;
++ break;
++ case '\\':
++ if (*(s + 1)) ++s;
++ default:
++ *p = strip(*s); ++p;
++ --n;
++ break;
++ }
++ s++;
++ }
++ *p = 0;
++ return pbuf;
++}
++
++/* Process device events in Readline's hook since there is no where
++ else to do it now - AV */
++int rl_event_func()
++{
++ static REQUEST reqst = { checkup_option, 0 };
++ Input(&reqst, NULL);
++ return 0;
++}
++
++/* Added GNU Readline Support -- Andrew Veliath <veliaa@rpi.edu> */
++void app_rl_readlines()
++{
++ char *line, *expanded_line;
++
++ strcpy(gnu_history_file, getenv("HOME"));
++ strcat(gnu_history_file, "/.");
++ strcat(gnu_history_file, application_name);
++ strcat(gnu_history_file, "_history");
++
++ using_history();
++ read_history(gnu_history_file);
++
++ rl_readline_name = application_name;
++ rl_instream = cp_in;
++ rl_outstream = cp_out;
++ rl_event_hook = rl_event_func;
++
++ while (1) {
++ history_set_pos(history_length);
++ line = readline(prompt());
++ if (line && *line) {
++ int s = history_expand(line, &expanded_line);
++
++ if (s == 2) {
++ fprintf(stderr, "-> %s\n", expanded_line);
++ } else if (s == -1) {
++ fprintf(stderr, "readline: %s\n", expanded_line);
++ } else {
++ cp_evloop(expanded_line);
++ add_history(expanded_line);
++ }
++ free(expanded_line);
++ }
++ if (line) free(line);
++ else if (line == NULL) cp_evloop("quit");
++ }
++ /* History gets written in ../fte/misccoms.c com_quit */
++}
++#endif /* HAS_GNUREADLINE */
++
+ char *hlp_filelist[] = { "spice", 0 };
+
+ void
+@@ -216,6 +322,10 @@
+
+ #endif
+
++#ifdef __FreeBSD__
++ fpsetmask(fpgetmask() & ~FP_X_INV & ~FP_X_DZ & ~FP_X_OFL);
++#endif
++
+ /* MFB tends to jump to 0 on errors. This tends to catch it. */
+ if (started) {
+ fprintf(cp_err, "main: Internal Error: jump to zero\n");
+@@ -236,6 +346,13 @@
+ ARCHsize = 1;
+ #endif /* PARALLEL_ARCH */
+
++#ifdef HAS_GNUREADLINE
++ if (!(application_name = strrchr(av[0],'/')))
++ application_name = av[0];
++ else
++ ++application_name;
++#endif
++
+ #ifdef HAS_MAC_ARGCARGV
+ ac = initmac(&av);
+ #endif
+@@ -472,7 +589,11 @@
+ # ifdef HAS_UNIX_SIGS
+ /* Set up (void) signal handling */
+ if (!ft_batchmode) {
++# ifdef HAS_GNUREADLINE
++ (void) signal(SIGINT, SIG_IGN);
++# else
+ (void) signal(SIGINT, ft_sigintr);
++# endif
+ (void) signal(SIGFPE, sigfloat);
+ # ifdef SIGTSTP
+ (void) signal(SIGTSTP, sigstop);
+@@ -668,7 +789,11 @@
+ } else {
+ (void) setjmp(jbuf);
+ cp_interactive = true;
++#ifdef HAS_GNUREADLINE
++ app_rl_readlines();
++#else
+ while (cp_evloop((char *) NULL) == 1) ;
++#endif /* ifelse HAS_GNUREADLINE */
+ }
+
+ # else /* if BATCH */
+@@ -708,7 +833,11 @@
+ /* Nutmeg "main" */
+ (void) setjmp(jbuf);
+ cp_interactive = true;
++#ifdef HAS_GNUREADLINE
++ app_rl_readlines();
++#else
+ while (cp_evloop((char *) NULL) == 1) ;
++#endif /* ifelse HAS_GNUREADLINE */
+
+ #endif
+
diff --git a/cad/cider/files/patch-bc b/cad/cider/files/patch-bc
index 1b7d06886f7c..fa587adfce07 100644
--- a/cad/cider/files/patch-bc
+++ b/cad/cider/files/patch-bc
@@ -1,213 +1,197 @@
-*** cider/common/src/bin/main.c.orig Sat Mar 12 08:20:59 1994
---- cider/common/src/bin/main.c Tue Oct 24 03:37:38 2000
-***************
-*** 25,30 ****
---- 25,37 ----
- #include <pwd.h>
- #endif
-
-+ #ifdef HAS_GNUREADLINE
-+ /* Added GNU Readline Support 11/3/97 -- Andrew Veliath <veliaa@rpi.edu> */
-+ #include <readline/readline.h>
-+ #include <readline/history.h>
-+ #include "fteinput.h"
-+ #endif
-+
- #ifdef HAS_UNIX_SIGS
- #include <signal.h>
- #endif
-***************
-*** 36,41 ****
---- 43,53 ----
- #endif
-
- #include "patchlev.h"
-+
-+ #ifdef __FreeBSD__
-+ #include <ieeefp.h>
-+ #endif
-+
- #include "suffix.h"
-
- /* (Virtual) Machine architecture parameters */
-***************
-*** 53,58 ****
---- 65,75 ----
- bool ft_intrpt = false; /* Set by the (void) signal handlers. */
- bool ft_setflag = false; /* Don't abort after an interrupt. */
-
-+ #ifdef HAS_GNUREADLINE
-+ char gnu_history_file[512];
-+ static char *application_name;
-+ #endif
-+
- struct variable *(*if_getparam)( );
-
- #ifdef BATCH
-***************
-*** 185,190 ****
---- 202,294 ----
-
- #endif
-
-+ #ifdef HAS_GNUREADLINE
-+ /* Adapted ../lib/cp/lexical.c:prompt() for GNU Readline -- Andrew Veliath <veliaa@rpi.edu> */
-+ static char *
-+ prompt()
-+ {
-+ static char pbuf[128];
-+ int n = sizeof(pbuf);
-+ char *p = pbuf, *s;
-+
-+ if (cp_interactive == false)
-+ return;
-+ if (cp_promptstring == NULL)
-+ s = "-> ";
-+ else
-+ s = cp_promptstring;
-+ if (cp_altprompt)
-+ s = cp_altprompt;
-+ while (*s && (n > 1)) {
-+ int w;
-+ switch (strip(*s)) {
-+ case '!':
-+ w = snprintf(p, n, "%d", where_history() + 1);
-+ w = (w >= n) ? n - 1 : w;
-+ p += w;
-+ n -= w;
-+ break;
-+ default:
-+ *p = strip(*s); ++p;
-+ --n;
-+ break;
-+ }
-+ s++;
-+ }
-+ *p = 0;
-+ return pbuf;
-+ }
-+
-+ /* Process device events in Readline's hook since there is no where
-+ else to do it now - AV */
-+ int rl_event_func()
-+ {
-+ static REQUEST reqst = { checkup_option, 0 };
-+ Input(&reqst, NULL);
-+ return 0;
-+ }
-+
-+ /* Added GNU Readline Support -- Andrew Veliath <veliaa@rpi.edu> */
-+ void app_rl_readlines()
-+ {
-+ char *line, *expanded_line;
-+
-+ strcpy(gnu_history_file, getenv("HOME"));
-+ strcat(gnu_history_file, "/.");
-+ strcat(gnu_history_file, application_name);
-+ strcat(gnu_history_file, "_history");
-+
-+ using_history();
-+ read_history(gnu_history_file);
-+
-+ rl_readline_name = application_name;
-+ rl_instream = cp_in;
-+ rl_outstream = cp_out;
-+ rl_event_hook = rl_event_func;
-+
-+ while (1) {
-+ history_set_pos(history_length);
-+ line = readline(prompt());
-+ if (line && *line) {
-+ int s = history_expand(line, &expanded_line);
-+
-+ if (s == 2) {
-+ fprintf(stderr, "-> %s\n", expanded_line);
-+ } else if (s == -1) {
-+ fprintf(stderr, "readline: %s\n", expanded_line);
-+ } else {
-+ cp_evloop(expanded_line);
-+ add_history(expanded_line);
-+ }
-+ free(expanded_line);
-+ }
-+ if (line) free(line);
-+ else if (line == NULL) cp_evloop("quit");
-+ }
-+ /* History gets written in ../fte/misccoms.c com_quit */
-+ }
-+ #endif /* HAS_GNUREADLINE */
-+
- char *hlp_filelist[] = { "spice", "cider", 0 };
-
- void
-***************
-*** 216,221 ****
---- 320,329 ----
-
- #endif
-
-+ #ifdef __FreeBSD__
-+ fpsetmask(fpgetmask() & ~FP_X_INV & ~FP_X_DZ & ~FP_X_OFL);
-+ #endif
-+
- /* MFB tends to jump to 0 on errors. This tends to catch it. */
- if (started) {
- fprintf(cp_err, "main: Internal Error: jump to zero\n");
-***************
-*** 236,241 ****
---- 344,356 ----
- ARCHsize = 1;
- #endif /* PARALLEL_ARCH */
-
-+ #ifdef HAS_GNUREADLINE
-+ if (!(application_name = strrchr(av[0],'/')))
-+ application_name = av[0];
-+ else
-+ ++application_name;
-+ #endif
-+
- #ifdef HAS_MAC_ARGCARGV
- ac = initmac(&av);
- #endif
-***************
-*** 472,478 ****
---- 587,597 ----
- # ifdef HAS_UNIX_SIGS
- /* Set up (void) signal handling */
- if (!ft_batchmode) {
-+ # ifdef HAS_GNUREADLINE
-+ (void) signal(SIGINT, SIG_IGN);
-+ # else
- (void) signal(SIGINT, ft_sigintr);
-+ # endif
- (void) signal(SIGFPE, sigfloat);
- # ifdef SIGTSTP
- (void) signal(SIGTSTP, sigstop);
-***************
-*** 668,674 ****
---- 787,797 ----
- } else {
- (void) setjmp(jbuf);
- cp_interactive = true;
-+ #ifdef HAS_GNUREADLINE
-+ app_rl_readlines();
-+ #else
- while (cp_evloop((char *) NULL) == 1) ;
-+ #endif /* ifelse HAS_GNUREADLINE */
- }
-
- # else /* if BATCH */
-***************
-*** 708,714 ****
---- 831,841 ----
- /* Nutmeg "main" */
- (void) setjmp(jbuf);
- cp_interactive = true;
-+ #ifdef HAS_GNUREADLINE
-+ app_rl_readlines();
-+ #else
- while (cp_evloop((char *) NULL) == 1) ;
-+ #endif /* ifelse HAS_GNUREADLINE */
-
- #endif
-
+--- cider/common/src/bin/main.c.orig Sat Mar 12 08:20:59 1994
++++ cider/common/src/bin/main.c Wed Sep 19 11:07:47 2001
+@@ -25,6 +25,13 @@
+ #include <pwd.h>
+ #endif
+
++#ifdef HAS_GNUREADLINE
++/* Added GNU Readline Support 11/3/97 -- Andrew Veliath <veliaa@rpi.edu> */
++#include <readline/readline.h>
++#include <readline/history.h>
++#include "fteinput.h"
++#endif
++
+ #ifdef HAS_UNIX_SIGS
+ #include <signal.h>
+ #endif
+@@ -36,6 +43,11 @@
+ #endif
+
+ #include "patchlev.h"
++
++#ifdef __FreeBSD__
++#include <ieeefp.h>
++#endif
++
+ #include "suffix.h"
+
+ /* (Virtual) Machine architecture parameters */
+@@ -53,6 +65,11 @@
+ bool ft_intrpt = false; /* Set by the (void) signal handlers. */
+ bool ft_setflag = false; /* Don't abort after an interrupt. */
+
++#ifdef HAS_GNUREADLINE
++char gnu_history_file[512];
++static char *application_name;
++#endif
++
+ struct variable *(*if_getparam)( );
+
+ #ifdef BATCH
+@@ -185,6 +202,95 @@
+
+ #endif
+
++#ifdef HAS_GNUREADLINE
++/* Adapted ../lib/cp/lexical.c:prompt() for GNU Readline -- Andrew Veliath <veliaa@rpi.edu> */
++static char *
++prompt()
++{
++ static char pbuf[128];
++ int n = sizeof(pbuf);
++ char *p = pbuf, *s;
++
++ if (cp_interactive == false)
++ return;
++ if (cp_promptstring == NULL)
++ s = "-> ";
++ else
++ s = cp_promptstring;
++ if (cp_altprompt)
++ s = cp_altprompt;
++ while (*s && (n > 1)) {
++ int w;
++ switch (strip(*s)) {
++ case '!':
++ w = snprintf(p, n, "%d", where_history() + 1);
++ w = (w >= n) ? n - 1 : w;
++ p += w;
++ n -= w;
++ break;
++ case '\\':
++ if (*(s + 1)) ++s;
++ default:
++ *p = strip(*s); ++p;
++ --n;
++ break;
++ }
++ s++;
++ }
++ *p = 0;
++ return pbuf;
++}
++
++/* Process device events in Readline's hook since there is no where
++ else to do it now - AV */
++int rl_event_func()
++{
++ static REQUEST reqst = { checkup_option, 0 };
++ Input(&reqst, NULL);
++ return 0;
++}
++
++/* Added GNU Readline Support -- Andrew Veliath <veliaa@rpi.edu> */
++void app_rl_readlines()
++{
++ char *line, *expanded_line;
++
++ strcpy(gnu_history_file, getenv("HOME"));
++ strcat(gnu_history_file, "/.");
++ strcat(gnu_history_file, application_name);
++ strcat(gnu_history_file, "_history");
++
++ using_history();
++ read_history(gnu_history_file);
++
++ rl_readline_name = application_name;
++ rl_instream = cp_in;
++ rl_outstream = cp_out;
++ rl_event_hook = rl_event_func;
++
++ while (1) {
++ history_set_pos(history_length);
++ line = readline(prompt());
++ if (line && *line) {
++ int s = history_expand(line, &expanded_line);
++
++ if (s == 2) {
++ fprintf(stderr, "-> %s\n", expanded_line);
++ } else if (s == -1) {
++ fprintf(stderr, "readline: %s\n", expanded_line);
++ } else {
++ cp_evloop(expanded_line);
++ add_history(expanded_line);
++ }
++ free(expanded_line);
++ }
++ if (line) free(line);
++ else if (line == NULL) cp_evloop("quit");
++ }
++ /* History gets written in ../fte/misccoms.c com_quit */
++}
++#endif /* HAS_GNUREADLINE */
++
+ char *hlp_filelist[] = { "spice", "cider", 0 };
+
+ void
+@@ -216,6 +322,10 @@
+
+ #endif
+
++#ifdef __FreeBSD__
++ fpsetmask(fpgetmask() & ~FP_X_INV & ~FP_X_DZ & ~FP_X_OFL);
++#endif
++
+ /* MFB tends to jump to 0 on errors. This tends to catch it. */
+ if (started) {
+ fprintf(cp_err, "main: Internal Error: jump to zero\n");
+@@ -236,6 +346,13 @@
+ ARCHsize = 1;
+ #endif /* PARALLEL_ARCH */
+
++#ifdef HAS_GNUREADLINE
++ if (!(application_name = strrchr(av[0],'/')))
++ application_name = av[0];
++ else
++ ++application_name;
++#endif
++
+ #ifdef HAS_MAC_ARGCARGV
+ ac = initmac(&av);
+ #endif
+@@ -472,7 +589,11 @@
+ # ifdef HAS_UNIX_SIGS
+ /* Set up (void) signal handling */
+ if (!ft_batchmode) {
++# ifdef HAS_GNUREADLINE
++ (void) signal(SIGINT, SIG_IGN);
++# else
+ (void) signal(SIGINT, ft_sigintr);
++# endif
+ (void) signal(SIGFPE, sigfloat);
+ # ifdef SIGTSTP
+ (void) signal(SIGTSTP, sigstop);
+@@ -668,7 +789,11 @@
+ } else {
+ (void) setjmp(jbuf);
+ cp_interactive = true;
++#ifdef HAS_GNUREADLINE
++ app_rl_readlines();
++#else
+ while (cp_evloop((char *) NULL) == 1) ;
++#endif /* ifelse HAS_GNUREADLINE */
+ }
+
+ # else /* if BATCH */
+@@ -708,7 +833,11 @@
+ /* Nutmeg "main" */
+ (void) setjmp(jbuf);
+ cp_interactive = true;
++#ifdef HAS_GNUREADLINE
++ app_rl_readlines();
++#else
+ while (cp_evloop((char *) NULL) == 1) ;
++#endif /* ifelse HAS_GNUREADLINE */
+
+ #endif
+