ngspice/src/nghelp.c

125 lines
2.2 KiB
C

/**********
Copyright 1990 Regents of the University of California. All rights reserved.
Author: 1986 Wayne A. Christopher, U. C. Berkeley CAD Group
**********/
/*
* The main routine for the help system in stand-alone mode.
*/
#include "ngspice/config.h"
#include "ngspice/ngspice.h"
#include "ngspice/cpdefs.h"
#include "ngspice/hlpdefs.h"
#include "frontend/variable.h"
#ifndef X_DISPLAY_MISSING
Widget toplevel;
#endif
FILE *cp_in, *cp_out, *cp_err;
/* dummy declaration so CP.a doesn't pull in lexical.o and other objects */
bool cp_interactive = FALSE;
char *hlp_filelist[] = { "ngspice", 0 };
extern void ivars(char*);
#ifdef HAS_WINDOWS
FILE *flogp; /* hvogt 15.12.2001 */
#endif /* HAS_WINDOWS */
int
#ifdef HAS_WINDOWS
xmain(int ac, char **av)
#else
main(int ac, char **av)
#endif /* HAS_WINDOWS */
{
wordlist *wl = NULL;
#ifndef X_DISPLAY_MISSING
char *displayname;
/* grrr, Xtk forced contortions */
char *argv[2];
int argc = 2;
char buf[512];
#endif /* X_DISPLAY_MISSING */
ivars(NULL);
cp_in = stdin;
cp_out = stdout;
cp_err = stderr;
#ifndef X_DISPLAY_MISSING
if (cp_getvar("display", CP_STRING, buf)) {
displayname = buf;
} else if (!(displayname = getenv("DISPLAY"))) {
fprintf(stderr, "Can't open X display.");
goto out;
}
argv[0] = "nutmeg";
argv[1] = displayname;
/* initialize X toolkit */
toplevel = XtInitialize("nutmeg", "Nutmeg", NULL, 0, &argc, argv);
out:
#endif /* X_DISPLAY_MISSING */
if (ac > 1)
wl = wl_build(av + 1);
hlp_main(Help_Path, wl);
#ifndef X_DISPLAY_MISSING
if (hlp_usex) {
printf("Hit control-C when done.\n"); /* sigh */
XtMainLoop();
}
#endif /* X_DISPLAY_MISSING */
#ifdef HAS_WINDOWS
/* Keep window open untill a key is pressed */
printf("Press a key to quit\n");
while( getchar() == EOF) {}
#endif /* HAS_WINDOWS */
return EXIT_NORMAL;
}
/*
void
fatal(char *s)
{
fprintf(stderr, "fatal error: %s\n", s);
exit(1);
}
There is a conflict with another cp_printword in cp/quote.c
static void
cp_printword(s)
char *s;
{
printf("%s", s);
return;
}
*/
bool
cp_getvar(char *n, enum cp_types type, void *r)
{
return (FALSE);
}
char *
cp_tildexpand(char *s)
{
return tildexpand(s);
}