Compare commits
2 commits
dfb25a03d8
...
c48a3f3964
Author | SHA1 | Date | |
---|---|---|---|
c48a3f3964 | |||
b4dd5d1165 |
6 changed files with 229 additions and 274 deletions
|
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
19
src/staden/gen_a.sh
Normal file
19
src/staden/gen_a.sh
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
for fortran in $(ls *.f)
|
||||||
|
do
|
||||||
|
mkdir -p ${fortran%??}
|
||||||
|
cp $fortran ${fortran%??}
|
||||||
|
|
||||||
|
cd ${fortran%??}
|
||||||
|
fsplit ${fortran}
|
||||||
|
rm ${fortran}
|
||||||
|
|
||||||
|
gfortran -g -fdec -std=legacy -C -c *.f
|
||||||
|
ar rcv ${fortran%??}.a *.o
|
||||||
|
ranlib ${fortran%??}.a
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
cp ${fortran%??}/*.a .
|
||||||
|
rm -rf ${fortran%??}
|
||||||
|
done
|
|
@ -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 $<
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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\
|
||||||
|
|
Loading…
Reference in a new issue