fix: vepe, part of staden/bap

This commit is contained in:
kuoi 2023-04-13 02:45:32 +08:00
parent dfb25a03d8
commit b4dd5d1165
5 changed files with 210 additions and 274 deletions

View File

@ -3,9 +3,9 @@
# This makefile generates the following staden programs which # This makefile generates the following staden programs which
# run under xterm (normal, `N') and those which run directly under X. # run under xterm (normal, `N') and those which run directly under X.
NPROGS= mep nip pip bap sap sip splitp1 splitp2 splitp3 sethelp convert_project NPROGS= mep nip bap sap sip splitp1 splitp2 splitp3 sethelp
LPROGS= nipl pip sipl LPROGS= nipl
XPROGS= xmep xnip xpip xbap xsap xsip XPROGS= xmep xnip xbap xsap xsip
PROGS= $(NPROGS) $(LPROGS) $(XPROGS) PROGS= $(NPROGS) $(LPROGS) $(XPROGS)
@ -43,7 +43,7 @@ INCLUDES= -I$(SRC) -I$(STADENSRC) -I$(TEDSRC) -I$(OSPSRC) -I$(MISCSRC)
CC= cc CC= cc
CFLAGS= -g $(INCLUDES) CFLAGS= -g $(INCLUDES)
F77= gfortran F77= gfortran
FFLAGS= -g -C FFLAGS= -g -fdec -std=legacy -C
#FLIBS= -lfor -lUfor -lots -lFutil #FLIBS= -lfor -lUfor -lots -lFutil
FLIBS = -lm -lutil FLIBS = -lm -lutil
@ -53,7 +53,7 @@ XLFLAGS= $(XLIBS) $(FLIBS)
LD = gfortran LD = gfortran
XLD = cc XLD = cc
LDFLAGS = -g LDFLAGS = -g -fdec -std=legacy
# #
# Avoid compilation of objects in remote directories # Avoid compilation of objects in remote directories
@ -76,7 +76,7 @@ SEQLIB=\
# #
CCORE=\ CCORE=\
$(STADENBIN)/postscript.o\ $(STADENBIN)/postscript.o\
$(STADENBIN)/Graph.o\ $(TEDBIN)/Graph.o\
$(STADENBIN)/plotLog.o\ $(STADENBIN)/plotLog.o\
$(STADENBIN)/help.o\ $(STADENBIN)/help.o\
$(STADENBIN)/dialogues.o\ $(STADENBIN)/dialogues.o\
@ -101,7 +101,7 @@ COBJS2=\
# #
COMMONOBJSB=\ COMMONOBJSB=\
$(STADENBIN)/fmain.o\ $(STADENBIN)/fmain.o\
$(STADENBIN)/seeme-dec.o\ $(STADENBIN)/seeme-aix.o\
$(STADENBIN)/nxspec.o\ $(STADENBIN)/nxspec.o\
$(STADENBIN)/userface.o\ $(STADENBIN)/userface.o\
$(STADENBIN)/userfacecom.o\ $(STADENBIN)/userfacecom.o\
@ -118,13 +118,13 @@ SCOMMONOBJS=\
$(COMMONOBJSB) $(COMMONOBJSB)
XCOMMONOBJS=\ XCOMMONOBJS=\
$(STADENBIN)/seeme-dec.o\ $(STADENBIN)/seeme-aix.o\
$(STADENBIN)/xspec.o\ $(STADENBIN)/xspec.o\
$(STADENBIN)/subs89.a\ $(STADENBIN)/subs89.a\
$(COBJS) $(COBJS)
XCOMMONOBJS2=\ XCOMMONOBJS2=\
$(STADENBIN)/seeme-dec.o\ $(STADENBIN)/seeme-aix.o\
$(STADENBIN)/xspec.o\ $(STADENBIN)/xspec.o\
$(STADENBIN)/subs89.a\ $(STADENBIN)/subs89.a\
$(COBJS2) $(COBJS2)
@ -562,9 +562,9 @@ splitp3: $(SPLITP3OBJS)
# rm -r $$TMPDIR # rm -r $$TMPDIR
%.a: $(SRC)/%.f #%.a: $(SRC)/%.f
$(F77) $(FFLAGS) -c *.f; # $(F77) $(FFLAGS) -c *.f;
ar rcv $$BINDIR/$@ *.o; # ar rcv $$BINDIR/$@ *.o;

View File

@ -28,10 +28,11 @@ INCLUDES= -I$(SRC) -I$(TEDSRC) -I$(MISCSRC)
CC= cc CC= cc
CFLAGS= -g $(INCLUDES) CFLAGS= -g $(INCLUDES)
F77= gfortran F77= gfortran
FFLAGS= -g -fdec -C FFLAGS= -g -fdec -std=legacy -C
FLIBS= -lfor -lutil -lUfor -lots -lFutil -lm -lfor -lutil -lUfor -lots -lFutil FLIBS = -lutil -lm
XLIBS= -lXaw -lXt -lXmu -lXext -lX11 -ldnet_stub #FLIBS= -lfor -lutil -lUfor -lots -lFutil -lm
XLIBS= -lXaw -lXt -lXmu -lXext -lX11
LFLAGS= $(FLIBS) LFLAGS= $(FLIBS)
XLFLAGS= $(FLIBS) $(XLIBS) XLFLAGS= $(FLIBS) $(XLIBS)
@ -78,7 +79,7 @@ XDAPCOBJS=\
# #
COMMONOBJSB=\ COMMONOBJSB=\
fmain.o\ fmain.o\
seeme-dec.o\ seeme-aix.o\
nxspec.o\ nxspec.o\
userface.o\ userface.o\
userfacecom.o\ userfacecom.o\
@ -95,13 +96,13 @@ SCOMMONOBJS=\
$(COMMONOBJSB) $(COMMONOBJSB)
XCOMMONOBJS=\ XCOMMONOBJS=\
seeme-dec.o\ seeme-aix.o\
xspec.o\ xspec.o\
subs89.a\ subs89.a\
$(COBJS) $(COBJS)
XDAPCOMMONOBJS=\ XDAPCOMMONOBJS=\
seeme-dec.o\ seeme-aix.o\
xspec.o\ xspec.o\
subs89.a\ subs89.a\
$(XDAPCOBJS) $(XDAPCOBJS)
@ -549,29 +550,34 @@ vep: $(VEPOBJS)
# avoid filling up the (small on this machine) /tmp directory # avoid filling up the (small on this machine) /tmp directory
# with compiler debugging information. # with compiler debugging information.
# #
#%.a: $(SRC)/%.f %.a: $(SRC)/%.f
sh gen_a.sh
# BINDIR=`pwd`; \ # BINDIR=`pwd`; \
# cd $(SRC); \ # cd $(SRC); \
# SRCDIR=`pwd`; \ # SRCDIR=`pwd`; \
#
# TMPDIR=/tmp/staden$$$$; \ # TMPDIR=/tmp/staden$$$$; \
# if test ! -d $$TMPDIR; \ # if test ! -d $$TMPDIR; \
# then mkdir $$TMPDIR; \ # then mkdir $$TMPDIR; \
# fi; \ # fi; \
# cd $$TMPDIR; \ # cd $$TMPDIR; \
# rm -f *.f *.o; \ # rm -f *.f *.o; \
#
# fsplit $$SRCDIR/`expr $< : '.*/\(.*\)' \| $<`; \ # fsplit $$SRCDIR/`expr $< : '.*/\(.*\)' \| $<`; \
# $(F77) $(FFLAGS) -c *.f; \ # $(F77) $(FFLAGS) -c *.f; \
# rm *.f; \ #
# rm -f $$BINDIR/$@; \ ## rm *.f; \
# ar rcv $$BINDIR/$@ *.o; \ #
# ranlib $$BINDIR/$@; \ # rm -f $@; \
# rm *.o; \ # ar rcv $@ *.o; \
# ranlib $@; \
##rm *.o; \
#
# cd $$BINDIR; \ # cd $$BINDIR; \
# rm -r $$TMPDIR # rm -r $$TMPDIR
%.a: $(SRC)/%.f
$(F77) $(FFLAGS) -c *.f; \
ar rcv *.o
#.f.a: #.f.a:
# $(F77) $(FFLAGS) -c $< # $(F77) $(FFLAGS) -c $<

View File

@ -670,6 +670,7 @@ C
WRITE(*,*)'END IN GETRSL' WRITE(*,*)'END IN GETRSL'
END END
INTEGER FUNCTION SEEKRS(IDEV,IREC) INTEGER FUNCTION SEEKRS(IDEV,IREC)
INTEGER FSEEK EXTERNAL FSEEK
C INTEGER FSEEK
SEEKRS = FSEEK(IDEV,IREC,0) SEEKRS = FSEEK(IDEV,IREC,0)
END END

View File

@ -2,9 +2,10 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <sys/types.h> #include <sys/types.h>
#include "userface.h"
#include "helpnmenu.h"
#include "FtoC.h" /* IMPORT: Fstr2Cstr and Cstr2Fstr */ #include "FtoC.h" /* IMPORT: Fstr2Cstr and Cstr2Fstr */
#include "helpnmenu.h"
#include "userface.h"
/* /*
* Prompts the user with either one yes/no question or another. * Prompts the user with either one yes/no question or another.
@ -16,21 +17,21 @@
* 1 = no * 1 = no
* -1 = cancel * -1 = cancel
*/ */
int yesono(int choice, char *prompt1, char *prompt2) { int yesono(int choice, char *prompt1, char *prompt2)
int a; {
int a;
switch(choice) { switch (choice) {
case 0: case 0:
return yesno(prompt1); return yesno(prompt1);
case 1: case 1:
a = yesno(prompt2); a = yesno(prompt2);
if (a>=0) if (a >= 0) a ^= 1;
a ^= 1; return a;
return a; default:
default: fputs("yesno() called with bad 'choice'\n", stderr);
fputs("yesno() called with bad 'choice'\n", stderr); return -1;
return -1; }
}
} }
/*--------------------------------------------------------------------------*\ /*--------------------------------------------------------------------------*\
@ -41,51 +42,33 @@ int yesono(int choice, char *prompt1, char *prompt2) {
|* *| |* *|
\*--------------------------------------------------------------------------*/ \*--------------------------------------------------------------------------*/
void getint_x(int_f *MININ_p, void getint_x(int_f *MININ_p, int_f *MAXIN_p, int_f *DEF_p, char *PROMPT_p,
int_f *MAXIN_p, int_f *VALUE_p, /* out: result */
int_f *DEF_p, int_f *KBIN_p, int_f *KBOUT_p, int_f *IHELPS_p, int_f *IHELPE_p,
char *PROMPT_p, char *HELPF_p, int_f *IDEVH_p, int_f *IOK_p, /* out: status */
int_f *VALUE_p, /* out: result */ int_fl PROMPT_l, int_fl HELPF_l)
int_f *KBIN_p,
int_f *KBOUT_p,
int_f *IHELPS_p,
int_f *IHELPE_p,
char *HELPF_p,
int_f *IDEVH_p,
int_f *IOK_p, /* out: status */
int_fl PROMPT_l,
int_fl HELPF_l)
/* /*
* Prompt for an integer in the range *MININ_p <= i <= *MAXIN_p * Prompt for an integer in the range *MININ_p <= i <= *MAXIN_p
* IOK=0 => OK * IOK=0 => OK
* IOK=1 => Cancel * IOK=1 => Cancel
*/ */
{ {
char prompt[256]; char prompt[256];
int status; int status;
Fstr2Cstr(PROMPT_p, PROMPT_l, prompt, (int_fl)sizeof(prompt)); Fstr2Cstr(PROMPT_p, PROMPT_l, prompt, (int_fl)sizeof(prompt));
*VALUE_p = getint((int)*MININ_p, (int)*MAXIN_p, (int)*DEF_p, *VALUE_p =
prompt, &status); getint((int)*MININ_p, (int)*MAXIN_p, (int)*DEF_p, prompt, &status);
*IOK_p = (int_f)((status < 0)? 1:0); *IOK_p = (int_f)((status < 0) ? 1 : 0);
return; return;
} }
void getrl_x(float *MININ_p, void getrl_x(float *MININ_p, float *MAXIN_p, float *DEF_p, char *PROMPT_p,
float *MAXIN_p, float *VALUE_p, /* out: result */
float *DEF_p, int_f *KBIN_p, int_f *KBOUT_p, int_f *IHELPS_p, int_f *IHELPE_p,
char *PROMPT_p, char *HELPF_p, int_f *IDEVH_p, int_f *IOK_p, int_fl PROMPT_l,
float *VALUE_p, /* out: result */
int_f *KBIN_p,
int_f *KBOUT_p,
int_f *IHELPS_p,
int_f *IHELPE_p,
char *HELPF_p,
int_f *IDEVH_p,
int_f *IOK_p,
int_fl PROMPT_l,
int_fl HELPF_l) int_fl HELPF_l)
/* /*
* Prompt for a real in the range *MININ_p <= i <= *MAXIN_p * Prompt for a real in the range *MININ_p <= i <= *MAXIN_p
@ -94,30 +77,21 @@ void getrl_x(float *MININ_p,
* IOK=1 => Cancel * IOK=1 => Cancel
*/ */
{ {
char prompt[256]; char prompt[256];
int status; int status;
Fstr2Cstr(PROMPT_p, PROMPT_l, prompt, (int_fl)sizeof(prompt)); Fstr2Cstr(PROMPT_p, PROMPT_l, prompt, (int_fl)sizeof(prompt));
*VALUE_p = getfloat(*MININ_p, *MAXIN_p, *DEF_p, prompt, &status, 2); *VALUE_p = getfloat(*MININ_p, *MAXIN_p, *DEF_p, prompt, &status, 2);
*IOK_p = (int_f)((status < 0)? 1:0); *IOK_p = (int_f)((status < 0) ? 1 : 0);
return; return;
} }
void getrls_x(float *MININ_p, void getrls_x(float *MININ_p, float *MAXIN_p, float *DEF_p, char *PROMPT_p,
float *MAXIN_p, float *VALUE_p, /* out: result */
float *DEF_p, int_f *KBIN_p, int_f *KBOUT_p, int_f *IHELPS_p, int_f *IHELPE_p,
char *PROMPT_p, char *HELPF_p, int_f *IDEVH_p, int_f *IOK_p, int_fl PROMPT_l,
float *VALUE_p, /* out: result */
int_f *KBIN_p,
int_f *KBOUT_p,
int_f *IHELPS_p,
int_f *IHELPE_p,
char *HELPF_p,
int_f *IDEVH_p,
int_f *IOK_p,
int_fl PROMPT_l,
int_fl HELPF_l) int_fl HELPF_l)
/* /*
* Prompt for a real in the range *MININ_p <= i <= *MAXIN_p * Prompt for a real in the range *MININ_p <= i <= *MAXIN_p
@ -126,27 +100,20 @@ void getrls_x(float *MININ_p,
* IOK=1 => Cancel * IOK=1 => Cancel
*/ */
{ {
char prompt[256]; char prompt[256];
int status; int status;
Fstr2Cstr(PROMPT_p, PROMPT_l, prompt, (int_fl)sizeof(prompt)); Fstr2Cstr(PROMPT_p, PROMPT_l, prompt, (int_fl)sizeof(prompt));
*VALUE_p = getfloat(*MININ_p, *MAXIN_p, *DEF_p, prompt, &status, 10); *VALUE_p = getfloat(*MININ_p, *MAXIN_p, *DEF_p, prompt, &status, 10);
*IOK_p = (int_f)((status < 0)? 1:0); *IOK_p = (int_f)((status < 0) ? 1 : 0);
return; return;
} }
void yesno_x(int_f *ANSWER_p, void yesno_x(int_f *ANSWER_p, char *PROMPT_p, int_f *IHELPS_p, int_f *IHELPE_p,
char *PROMPT_p, char *HELPF_p, int_f *IDEVH_p, int_f *KBIN_p, int_f *KBOUT_p,
int_f *IHELPS_p, int_fl PROMPT_l, int_fl HELPF_l)
int_f *IHELPE_p,
char *HELPF_p,
int_f *IDEVH_p,
int_f *KBIN_p,
int_f *KBOUT_p,
int_fl PROMPT_l,
int_fl HELPF_l)
/* /*
* Prompt the user with *PROMPT_l and get a YES or NO response. * Prompt the user with *PROMPT_l and get a YES or NO response.
* ANSWER=-1 => Cancel * ANSWER=-1 => Cancel
@ -154,48 +121,35 @@ void yesno_x(int_f *ANSWER_p,
* ANSWER=1 => NO * ANSWER=1 => NO
*/ */
{ {
char prompt[256]; char prompt[256];
Fstr2Cstr(PROMPT_p, PROMPT_l, prompt, (int_fl)sizeof(prompt)); Fstr2Cstr(PROMPT_p, PROMPT_l, prompt, (int_fl)sizeof(prompt));
*ANSWER_p = (int_f)yesno(prompt); *ANSWER_p = (int_f)yesno(prompt);
} }
void yesono_x(int_f *CHOICE_p, void yesono_x(int_f *CHOICE_p, char *P1_p, char *P2_p, int_f *IHELPS_p,
char *P1_p, int_f *IHELPE_p, char *HELPF_p, int_f *IDEVH_p, int_f *KBIN_p,
char *P2_p, int_f *KBOUT_p, int_fl P1_l, int_fl P2_l, int_fl HELPF_l)
int_f *IHELPS_p,
int_f *IHELPE_p,
char *HELPF_p,
int_f *IDEVH_p,
int_f *KBIN_p,
int_f *KBOUT_p,
int_fl P1_l,
int_fl P2_l,
int_fl HELPF_l)
/* /*
* If CHOICE is 0, present a YESNO dialogue with prompt P1. * If CHOICE is 0, present a YESNO dialogue with prompt P1.
* If CHOICE is 1, present a YESNO dialogue with prompt P2. * If CHOICE is 1, present a YESNO dialogue with prompt P2.
*/ */
{ {
char prompt1[256], prompt2[256]; char prompt1[256], prompt2[256];
Fstr2Cstr(P1_p, P1_l, prompt1, (int_fl)sizeof(prompt1)); Fstr2Cstr(P1_p, P1_l, prompt1, (int_fl)sizeof(prompt1));
Fstr2Cstr(P2_p, P2_l, prompt2, (int_fl)sizeof(prompt2)); Fstr2Cstr(P2_p, P2_l, prompt2, (int_fl)sizeof(prompt2));
*CHOICE_p = (int_f)yesono(*CHOICE_p, prompt1, prompt2); *CHOICE_p = (int_f)yesono(*CHOICE_p, prompt1, prompt2);
} }
void gtstr_x(char *P_p, /* prompt */ void gtstr_x(char *P_p, /* prompt */
char *STRING_p, /* default value (if *LENGTH_p > 0) */ char *STRING_p, /* default value (if *LENGTH_p > 0) */
char *NEW_p, /* out: dialogue result */ char *NEW_p, /* out: dialogue result */
int_f *LENGTH_p, /* in: significant length of *STRING_p int_f *LENGTH_p, /* in: significant length of *STRING_p
out: significant length of *NEW_p */ out: significant length of *NEW_p */
int_f *KBOUT_p, int_f *KBOUT_p, int_f *KBIN_p, int_f *INFLAG_p, /* out: status */
int_f *KBIN_p, int_fl P_l, int_fl STRING_l, int_fl NEW_l)
int_f *INFLAG_p, /* out: status */
int_fl P_l,
int_fl STRING_l,
int_fl NEW_l)
/* /*
* Prompt with P for a string, default value STRING. * Prompt with P for a string, default value STRING.
* Return new string in NEW. * Return new string in NEW.
@ -205,43 +159,43 @@ void gtstr_x(char *P_p, /* prompt */
* INFLAG=3 => LENGTH=0 and NEW full of blanks (ie default) * INFLAG=3 => LENGTH=0 and NEW full of blanks (ie default)
*/ */
{ {
char question[256], def[256]; char question[256], def[256];
char *defptr; char *defptr;
int ret; int ret;
Fstr2Cstr(P_p, P_l, question, (int_fl)sizeof(question)); Fstr2Cstr(P_p, P_l, question, (int_fl)sizeof(question));
if (*LENGTH_p > 0) { if (*LENGTH_p > 0) {
Fstr2Cstr(STRING_p, STRING_l, def, (int_fl)sizeof(def)); Fstr2Cstr(STRING_p, STRING_l, def, (int_fl)sizeof(def));
defptr = def; defptr = def;
} else }
defptr = 0; else
defptr = 0;
ret = gtstr(question, defptr, NEW_p, (size_t)((NEW_l==1)?40:NEW_l)); ret =
switch(ret) { gtstr(question, defptr, NEW_p, (size_t)((NEW_l == 1) ? 40 : NEW_l));
case -1: switch (ret) {
*INFLAG_p = 2; case -1:
*LENGTH_p = 1; *INFLAG_p = 2;
return; *LENGTH_p = 1;
case 0: return;
*INFLAG_p = 0; case 0:
*LENGTH_p = (int_f)strlen(NEW_p); *INFLAG_p = 0;
Cstr2Fstr(NEW_p, NEW_p, NEW_l); *LENGTH_p = (int_f)strlen(NEW_p);
return; Cstr2Fstr(NEW_p, NEW_p, NEW_l);
case 1: return;
*INFLAG_p = 3; case 1:
*LENGTH_p = 0; *INFLAG_p = 3;
} *LENGTH_p = 0;
}
} }
void getstr_x(char *P_p, /* prompt */ void getstr_x(char *P_p, /* prompt */
char *STRING_p, /* default value (if *LENGTH_p > 0) */ char *STRING_p, /* default value (if *LENGTH_p > 0) */
char *NEW_p, /* out: dialogue result */ char *NEW_p, /* out: dialogue result */
int_f *MAXSTR_p, /* array length of *STRING_p and *NEW_p */ int_f *MAXSTR_p, /* array length of *STRING_p and *NEW_p */
int_f *LENGTH_p, /* in: significant length of *STRING_p int_f *LENGTH_p, /* in: significant length of *STRING_p
out: significant length of *NEW_p */ out: significant length of *NEW_p */
int_f *KBOUT_p, int_f *KBOUT_p, int_f *KBIN_p, int_f *INFLAG_p, /* out: status */
int_f *KBIN_p,
int_f *INFLAG_p, /* out: status */
int_fl P_l) int_fl P_l)
/* /*
* Present a dialogue requesting a string result with the given prompt * Present a dialogue requesting a string result with the given prompt
@ -252,31 +206,16 @@ void getstr_x(char *P_p, /* prompt */
* given *STRING_p and *NEW_p. * given *STRING_p and *NEW_p.
*/ */
{ {
gtstr_x(P_p, gtstr_x(P_p, STRING_p, NEW_p, LENGTH_p, KBOUT_p, KBIN_p, INFLAG_p, P_l,
STRING_p, *MAXSTR_p, *MAXSTR_p);
NEW_p,
LENGTH_p,
KBOUT_p,
KBIN_p,
INFLAG_p,
P_l,
*MAXSTR_p,
*MAXSTR_p);
} }
void radion_x(char *TITLE_p, void radion_x(char *TITLE_p, char *PROMPT_p, /* Actually: *PROMPT_p[*NB_p] */
char *PROMPT_p, /* Actually: *PROMPT_p[*NB_p] */ int_f *NB_p, /* Number of buttons (1..NB) */
int_f *NB_p, /* Number of buttons (1..NB) */ int_f *CHOICE_p, /* in: default button
int_f *CHOICE_p, /* in: default button out: selected button */
out: selected button */ int_f *IHELPS_p, int_f *IHELPE_p, char *HELPF_p, int_f *IDEVH_p,
int_f *IHELPS_p, int_f *KBIN_p, int_f *KBOUT_p, int_fl TITLE_l, int_fl PROMPT_l,
int_f *IHELPE_p,
char *HELPF_p,
int_f *IDEVH_p,
int_f *KBIN_p,
int_f *KBOUT_p,
int_fl TITLE_l,
int_fl PROMPT_l,
int_fl HELPF_l) int_fl HELPF_l)
/* /*
* Present a ``radio button'' dialogue allowing the user to select * Present a ``radio button'' dialogue allowing the user to select
@ -286,37 +225,32 @@ void radion_x(char *TITLE_p,
* CHOICE=-1 => Cancel * CHOICE=-1 => Cancel
*/ */
{ {
char **opt, title[256]; char **opt, title[256];
int i, numopts = (int)*NB_p; int i, numopts = (int)*NB_p;
/* initialise options array */ /* initialise options array */
opt = (char **)malloc(numopts * sizeof(char *)); opt = (char **)malloc(numopts * sizeof(char *));
opt[0] = (char *)malloc((unsigned int)((PROMPT_l+1) * numopts)); opt[0] = (char *)malloc((unsigned int)((PROMPT_l + 1) * numopts));
for (i=0; i<numopts; i++) { for (i = 0; i < numopts; i++) {
opt[i] = opt[0] + (PROMPT_l+1)*i; opt[i] = opt[0] + (PROMPT_l + 1) * i;
Fstr2Cstr(PROMPT_p+(i*PROMPT_l), PROMPT_l, opt[i], PROMPT_l+1); Fstr2Cstr(PROMPT_p + (i * PROMPT_l), PROMPT_l, opt[i],
} PROMPT_l + 1);
}
Fstr2Cstr(TITLE_p, TITLE_l, title, (int_fl)sizeof(title)); Fstr2Cstr(TITLE_p, TITLE_l, title, (int_fl)sizeof(title));
*CHOICE_p = (int_f)radion(title, opt, *NB_p, *CHOICE_p); *CHOICE_p = (int_f)radion(title, opt, *NB_p, *CHOICE_p);
free((void *)opt[0]); free((void *)opt[0]);
free((void *)opt); free((void *)opt);
return; return;
} }
void check4_x(char *P1_p, char *P2_p, char *P3_p, char *P4_p, void check4_x(char *P1_p, char *P2_p, char *P3_p, char *P4_p, int_f *C1_p,
int_f *C1_p, int_f *C2_p, int_f *C3_p, int_f *C4_p, int_f *C2_p, int_f *C3_p, int_f *C4_p, int_f *IHELPS_p,
int_f *IHELPS_p, int_f *IHELPE_p, char *HELPF_p, int_f *IDEVH_p, int_f *KBIN_p,
int_f *IHELPE_p, int_f *KBOUT_p, int_f *IOK_p, int_fl P1_l, int_fl P2_l,
char *HELPF_p, int_fl P3_l, int_fl P4_l, int_fl HELPF_l)
int_f *IDEVH_p,
int_f *KBIN_p,
int_f *KBOUT_p,
int_f *IOK_p,
int_fl P1_l, int_fl P2_l, int_fl P3_l, int_fl P4_l,
int_fl HELPF_l)
/* /*
* Present a ``checkbox'' dialogue allowing the user to alter the * Present a ``checkbox'' dialogue allowing the user to alter the
* Boolean state of four items. * Boolean state of four items.
@ -326,25 +260,28 @@ void check4_x(char *P1_p, char *P2_p, char *P3_p, char *P4_p,
* IOK=1 => Cancel * IOK=1 => Cancel
*/ */
{ {
int ret; int ret;
char *prompts[4]; char *prompts[4];
int *bools[4]; int *bools[4];
prompts[0] = P1_p; bools[0] = (int *)C1_p; prompts[0] = P1_p;
prompts[1] = P2_p; bools[1] = (int *)C2_p; bools[0] = (int *)C1_p;
prompts[2] = P3_p; bools[2] = (int *)C3_p; prompts[1] = P2_p;
prompts[3] = P4_p; bools[3] = (int *)C4_p; bools[1] = (int *)C2_p;
prompts[2] = P3_p;
bools[2] = (int *)C3_p;
prompts[3] = P4_p;
bools[3] = (int *)C4_p;
ret = checkn(4, prompts, bools); ret = checkn(4, prompts, bools);
if (ret == 0) if (ret == 0)
*IOK_p = 0; *IOK_p = 0;
else else
*IOK_p = 1; *IOK_p = 1;
} }
void getopt_x(int_f *KBIN_p, void getopt_x(int_f *KBIN_p, int_f *KOPT_p,
int_f *KOPT_p,
int_f *IOPT_p) /* out: option number selected */ int_f *IOPT_p) /* out: option number selected */
/* /*
* Select a function to execute * Select a function to execute
@ -353,58 +290,51 @@ void getopt_x(int_f *KBIN_p,
* KOPT=3 => menu option requested * KOPT=3 => menu option requested
*/ */
{ {
*IOPT_p = (int_f)getcopt((int *)KOPT_p); *IOPT_p = (int_f)getcopt((int *)KOPT_p);
switch(*KOPT_p) { switch (*KOPT_p) {
case -3: case -3:
case -2: case -2:
*KOPT_p = 0; *KOPT_p = 0;
*IOPT_p = 2; *IOPT_p = 2;
break; break;
case -1: case -1:
*KOPT_p = 0; *KOPT_p = 0;
*IOPT_p = 1; *IOPT_p = 1;
break; break;
} }
} }
void showfi_x(int_f *KBOUT_p, void showfi_x(int_f *KBOUT_p, char *STRING_p, int_fl STRING_l)
char *STRING_p,
int_fl STRING_l)
/* /*
* Display `STRING', the name of the current file(s). * Display `STRING', the name of the current file(s).
*/ */
{ {
char func[256]; char func[256];
Fstr2Cstr(STRING_p, STRING_l, func, (int_fl)sizeof(func)); Fstr2Cstr(STRING_p, STRING_l, func, (int_fl)sizeof(func));
showfi(func); showfi(func);
} }
void showfu_x(int_f *KBOUT_p, char *STRING_p, int_fl STRING_l)
void showfu_x(int_f *KBOUT_p,
char *STRING_p,
int_fl STRING_l)
/* /*
* Display `STRING', the name of the current function. * Display `STRING', the name of the current function.
*/ */
{ {
char func[256]; char func[256];
Fstr2Cstr(STRING_p, STRING_l, func, (int_fl)sizeof(func)); Fstr2Cstr(STRING_p, STRING_l, func, (int_fl)sizeof(func));
showfu(func); showfu(func);
} }
void errom_x(int_f *KBOUT_p, void errom_x(int_f *KBOUT_p, char *STRING_p, int_fl STRING_l)
char *STRING_p,
int_fl STRING_l)
/* /*
* Display the error message `STRING'. * Display the error message `STRING'.
*/ */
{ {
char err[256]; char err[256];
Fstr2Cstr(STRING_p, STRING_l, err, (int_fl)sizeof(err)); Fstr2Cstr(STRING_p, STRING_l, err, (int_fl)sizeof(err));
errom(err); errom(err);
} }
void busy_x(int_f *KBOUT_p) void busy_x(int_f *KBOUT_p)
@ -413,7 +343,7 @@ void busy_x(int_f *KBOUT_p)
* next dialogue function is called. * next dialogue function is called.
*/ */
{ {
busy(); busy();
} }
/* /*
@ -421,10 +351,8 @@ void busy_x(int_f *KBOUT_p)
* 0 for ok * 0 for ok
* -1 for cancel * -1 for cancel
*/ */
void bpause_x(int_f *KBIN_p, void bpause_x(int_f *KBIN_p, int_f *KBOUT_p, int_f *IOK_p)
int_f *KBOUT_p, {
int_f *IOK_p) { *IOK_p = (int_f)bpause();
*IOK_p = (int_f)bpause();
} }

View File

@ -37,7 +37,8 @@ FFLAGS= -g
LD= gfortran LD= gfortran
LDFLAGS= -g LDFLAGS= -g
FLIBS= -lfor -lutil -lUfor -lots -lFutil -lm -lfor -lutil -lUfor -lots -lFutil FLAGS = -lutil -lm
#FLIBS= -lfor -lutil -lUfor -lots -lFutil -lm -lfor -lutil -lUfor -lots -lFutil
XLIBS= -lXaw -lXt -lXmu -lXext -lX11 XLIBS= -lXaw -lXt -lXmu -lXext -lX11
#LFLAGS= $(FLIBS) #LFLAGS= $(FLIBS)
XLFLAGS= $(FLIBS) $(XLIBS) XLFLAGS= $(FLIBS) $(XLIBS)
@ -52,7 +53,7 @@ $(STADENBIN)/%.o : $(STADENSRC)/%.c
# Common objects, needed by every program # Common objects, needed by every program
# #
COMMONOBJS=\ COMMONOBJS=\
$(STADENBIN)/seeme-dec.o\ $(STADENBIN)/seeme-aix.o\
$(STADENBIN)/nxspec.o\ $(STADENBIN)/nxspec.o\
$(STADENBIN)/userface.o\ $(STADENBIN)/userface.o\
$(STADENBIN)/userfacecom.o\ $(STADENBIN)/userfacecom.o\