|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T u
Length: 2923 (0xb6b)
Types: TextFile
Names: »user.c«
└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape
└─⟦eba4602b1⟧ »./isode-5.0.tar.Z«
└─⟦d3ac74d73⟧
└─⟦this⟧ »isode-5.0/quipu/dish/user.c«
#include "quipu/util.h"
#include "quipu/name.h"
#include "quipu/sequence.h"
static struct dua_sequence * current_sequence = NULL_DS;
static struct dua_sequence * top_sequence = NULL_DS;
call_ds (argc,argv)
int argc;
char ** argv;
{
extern char bound;
extern char * myname;
extern char * isodeversion;
extern char * dsapversion;
extern char * quipuversion;
extern PS rps;
extern DN fixed_pos;
extern DN user_name;
if (argc > 1) {
if (test_arg (argv[1],"-sequence",1)) {
show_sequence (argv[2]);
return;
} else {
Usage (argv[0]);
return;
}
}
ps_printf (rps,"ISODE version %s\n",isodeversion);
ps_printf (rps,"DSAP version %s\n",dsapversion);
ps_printf (rps,"QUIPU version %s\n\n",quipuversion);
ps_print (rps, "Status...\n");
if (bound)
ps_printf (rps,"Connected to %s\n",myname);
else
ps_print (rps,"Not connected to a DSA (cache exists)\n");
ps_print (rps,"Current position: ");
dn_print (rps, fixed_pos, READOUT);
ps_print (rps, "\nUser name: ");
dn_print (rps, user_name, READOUT);
ps_print (rps, "\n");
if (current_sequence != NULL_DS)
ps_printf (rps,"Current sequence '%s'\n",current_sequence->ds_name);
}
set_sequence (str)
char * str;
{
struct dua_sequence *ptr;
for (ptr = top_sequence; ptr != NULL_DS; ptr=ptr->ds_next)
if (lexequ (ptr->ds_name,str) == 0) {
current_sequence = ptr;
return;
}
ptr = ds_alloc();
ptr->ds_name = strdup (str);
ptr->ds_data = NULL_DE;
ptr->ds_last = NULL_DE;
ptr->ds_next = top_sequence;
top_sequence = ptr;
current_sequence = ptr;
}
unset_sequence ()
{
current_sequence = NULL_DS;
}
add_sequence (adn)
DN adn;
{
struct dua_seq_entry * ptr;
register int x=1;
if (current_sequence == NULL_DS)
return (0);
for (ptr=current_sequence->ds_data; ptr != NULL_DE; ptr=ptr->de_next,x++)
if (dn_cmp (adn,ptr->de_name) == 0)
return (x);
ptr = de_alloc();
ptr->de_name = dn_cpy (adn);
ptr->de_next = NULL_DE;
if (current_sequence->ds_data == NULL_DE)
current_sequence->ds_data = ptr;
else
current_sequence->ds_last->de_next = ptr;
current_sequence->ds_last = ptr;
return (x);
}
DN sequence_dn(y)
int y;
{
struct dua_seq_entry * ptr;
register int x = 1;
if (current_sequence == NULL_DS)
return (NULLDN);
for (ptr=current_sequence->ds_data;
(ptr != NULL_DE) && (x<y);
ptr=ptr->de_next,x++)
;
if (ptr == NULL_DE)
return (NULLDN);
if ( x == y )
return (ptr->de_name);
return (NULLDN);
}
show_sequence (str)
char * str;
{
struct dua_seq_entry * ptr;
register int x = 1;
extern PS opt;
if (str != NULLCP)
set_sequence (str);
if (current_sequence == NULL_DS) {
ps_print (opt,"No sequence set!\n");
return;
}
ps_printf (rps,"Sequence %s contains:-\n",current_sequence->ds_name);
for (ptr=current_sequence->ds_data; ptr != NULL_DE; ptr=ptr->de_next, x++) {
ps_printf (rps,"%-3d ",x);
dn_print (rps,ptr->de_name,READOUT);
ps_print (rps,"\n");
}
}