90 lines
1.8 KiB
C
90 lines
1.8 KiB
C
#include "ngspice/config.h"
|
|
#include "ngspice/ngspice.h"
|
|
|
|
#include "ngspice/bool.h"
|
|
#include "ngspice/wordlist.h"
|
|
#include "ngspice/fteext.h"
|
|
|
|
#include "variable.h"
|
|
#include "com_help.h"
|
|
#include "com_ahelp.h"
|
|
#include "hcomp.h"
|
|
#include "ftehelp.h"
|
|
|
|
#include "plotting/plotting.h"
|
|
|
|
|
|
void
|
|
com_ahelp(wordlist *wl)
|
|
{
|
|
int i, n;
|
|
/* assert: number of commands must be less than 512 */
|
|
struct comm *cc[512];
|
|
unsigned int env = 0;
|
|
struct comm *com;
|
|
unsigned int level;
|
|
char slevel[256];
|
|
|
|
if (wl) {
|
|
com_help(wl);
|
|
return;
|
|
}
|
|
|
|
out_init();
|
|
|
|
/* determine environment */
|
|
if (plot_list->pl_next) { /* plots load */
|
|
env |= E_HASPLOTS;
|
|
} else {
|
|
env |= E_NOPLOTS;
|
|
}
|
|
|
|
/* determine level */
|
|
if (cp_getvar("level", CP_STRING, slevel)) {
|
|
switch (*slevel) {
|
|
case 'b': level = 1;
|
|
break;
|
|
case 'i': level = 2;
|
|
break;
|
|
case 'a': level = 4;
|
|
break;
|
|
default: level = 1;
|
|
break;
|
|
}
|
|
} else {
|
|
level = 1;
|
|
}
|
|
|
|
out_printf(
|
|
"For a complete description read the Spice3 User's Manual manual.\n");
|
|
out_printf(
|
|
"For a list of all commands type \"help all\", for a short\n");
|
|
out_printf(
|
|
"description of \"command\", type \"help command\".\n");
|
|
|
|
/* sort the commands */
|
|
for (n = 0; cp_coms[n].co_func != NULL; n++) {
|
|
cc[n] = &cp_coms[n];
|
|
}
|
|
qsort(cc, (size_t) n, sizeof(struct comm *), hcomp);
|
|
|
|
/* filter the commands */
|
|
for (i=0; i< n; i++) {
|
|
com = cc[i];
|
|
if ((com->co_env < (level << 13)) && (!(com->co_env & 4095) ||
|
|
(env & com->co_env))) {
|
|
if ((com->co_spiceonly && ft_nutmeg) || (com->co_help == NULL)) {
|
|
continue;
|
|
}
|
|
out_printf("%s ", com->co_comname);
|
|
out_printf(com->co_help, cp_program);
|
|
out_send("\n");
|
|
}
|
|
}
|
|
|
|
out_send("\n");
|
|
|
|
return;
|
|
|
|
}
|