|
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"); } }