summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEduardo Chappa <chappa@washington.edu>2020-07-05 00:48:51 -0600
committerEduardo Chappa <chappa@washington.edu>2020-07-05 00:48:51 -0600
commita8cfdb651a486641b6671c6bc5ce6c8fb506a995 (patch)
tree116541dbd0799ef1578b34fa552a7987f8c92101
parentc566cd0e4a7d9424a95c7d7c16f861e458bee8f1 (diff)
downloadalpine-a8cfdb651a486641b6671c6bc5ce6c8fb506a995.tar.xz
* Unix Alpine displays configure options and flags when invoked as "alpine -v".
Suggested by Matt Ackeret.
-rw-r--r--alpine/Makefile.am1
-rw-r--r--alpine/Makefile.in1
-rw-r--r--alpine/arg.c69
-rw-r--r--pico/blddate.c1
-rw-r--r--pith/pine.hlp5
5 files changed, 75 insertions, 2 deletions
diff --git a/alpine/Makefile.am b/alpine/Makefile.am
index 0542aad..da6f661 100644
--- a/alpine/Makefile.am
+++ b/alpine/Makefile.am
@@ -52,3 +52,4 @@ CLEANFILES = date.c
date.c:
echo "char datestamp[]="\"$(ALPINE_DATESTAMP)\"";" > date.c
echo "char hoststamp[]="\"$(ALPINE_HOSTSTAMP)\"";" >> date.c
+ echo "char configoptions[]="\"`../config.status --config`\"";" >> date.c
diff --git a/alpine/Makefile.in b/alpine/Makefile.in
index a2b7af8..0e84230 100644
--- a/alpine/Makefile.in
+++ b/alpine/Makefile.in
@@ -904,6 +904,7 @@ uninstall-am: uninstall-binPROGRAMS
date.c:
echo "char datestamp[]="\"$(ALPINE_DATESTAMP)\"";" > date.c
echo "char hoststamp[]="\"$(ALPINE_HOSTSTAMP)\"";" >> date.c
+ echo "char configoptions[]="\"`../config.status --config`\"";" >> date.c
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/alpine/arg.c b/alpine/arg.c
index 57c39fc..8e00a21 100644
--- a/alpine/arg.c
+++ b/alpine/arg.c
@@ -38,7 +38,9 @@ static char rcsid[] = "$Id: arg.c 900 2008-01-05 01:13:26Z hubert@u.washington.e
int process_debug_str(char *);
void args_add_attach(PATMT **, char *, int);
int pinerc_cmdline_opt(char *);
+void display_config_options(char *, char *);
+extern char configoptions[];
/*
* Name started as to invoke function key mode
@@ -192,7 +194,68 @@ N_("\tNote: All of -xoauth options above must be used, if any of them is used"),
NULL
};
-
+void
+display_config_options(char *configopts, char *defprefix)
+{
+ char *copts = configopts ? cpystr(configopts) : NULL;
+ char **options = NULL;
+ char *s, *t, *prefix;
+ int len, nlines, pending;
+
+ for(nlines = 0, s = copts; s != NULL; nlines++){
+ s = strchr(s, '\'');
+ if(s != NULL) s++;
+ }
+ options = fs_get((nlines/2 + 4)*sizeof(char *)); /* 4 in worst case scenario */
+ memset((void *) options, 0, (nlines/2 + 4)*sizeof(char *));
+ for(s = copts, len = 0, nlines = 0; s != NULL; ){
+ pending = 0;
+ prefix = len == 0 ? (nlines == 0 ? defprefix : " ") : " ";
+ if((s = strchr(s, '\'')) != NULL){
+ t = strchr(s+1, '\'');
+ *t = '\0';
+ if(!strncmp(s+1, "CFLAGS=", 7)
+ || !strncmp(s+1, "CC=", 3)
+ || !strncmp(s+1, "LIBS=", 5)
+ || !strncmp(s+1, "CPP=", 4)
+ || !strncmp(s+1, "CPPFLAGS=", 9)
+ || !strncmp(s+1, "LT_SYS_LIBRARY_PATH=", 20)
+ || !strncmp(s+1, "LDFLAGS=", 8)){
+ display_args_err(s+1, NULL, 0);
+ *t++ = '\'';
+ s = t;
+ continue;
+ }
+ if(len + strlen(prefix) + strlen(s+1) > 74 ){
+ if(len == 0){
+ options[nlines] = fs_get((strlen(prefix) + strlen(s+1) + 3)*sizeof(char));
+ sprintf(options[nlines++], "%s%s \\", prefix, s+1);
+ }
+ else{
+ strcat(options[nlines++], " \\");
+ pending++;
+ }
+ len = 0;
+ }
+ else{
+ if(len == 0){
+ options[nlines] = fs_get(76*sizeof(char));
+ *options[nlines] = '\0';
+ }
+ strcat(options[nlines], prefix);
+ strcat(options[nlines], s+1);
+ len = strlen(options[nlines]);
+ }
+ if(t != NULL)
+ *t = '\'';
+ if(!pending)
+ s = t ? t + 1 : NULL;
+ }
+ }
+ display_args_err(NULL, options, 0);
+ free_list_array(&options);
+ fs_give((void **) &copts);
+}
/*
* Parse the command line args.
@@ -1002,6 +1065,10 @@ Loop: while(--ac > 0)
datestamp, hoststamp);
tmp_20k_buf[SIZEOF_20KBUF-1] = '\0';
display_args_err(tmp_20k_buf, NULL, 0);
+ if(*configoptions){
+ display_args_err(_("Alpine was built with the following options:"), NULL, 0);
+ display_config_options(configoptions, "./configure ");
+ }
exit(0);
}
diff --git a/pico/blddate.c b/pico/blddate.c
index 00f0b55..8ad7c23 100644
--- a/pico/blddate.c
+++ b/pico/blddate.c
@@ -46,6 +46,7 @@ main(argc, argv)
1900 + t->tm_year);
fprintf(outfile, "char hoststamp[]=\"random-pc\";\n");
+ fprintf(outfile, "char *configoptions[] = \"\"";\n");
fclose(outfile);
diff --git a/pith/pine.hlp b/pith/pine.hlp
index 777b53f..5fd0529 100644
--- a/pith/pine.hlp
+++ b/pith/pine.hlp
@@ -140,7 +140,7 @@ with help text for the config screen and the composer that didn't have any
reasonable place to be called from.
Dummy change to get revision in pine.hlp
============= h_revision =================
-Alpine Commit 481 2020-07-04 02:42:49
+Alpine Commit 482 2020-07-05 00:48:47
============= h_news =================
<HTML>
<HEAD>
@@ -217,6 +217,9 @@ problems you find with this release.
replaced by a random string.
</UL>
+<LI> Unix Alpine displays configure options and flags when
+ invoked as &quot;alpine -v&quot;. Suggested by Matt Ackeret.
+
<LI> Alpine will ding the terminal bell when asking about quitting
when new mail arrives. This is consistent with Alpine dinging the
bell when new mail arrives. The bell will not ding if it is disabled