#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <ctype.h>
#include "udanax.h"
Include dependency graph for get2.cxx:

Go to the source code of this file.
Functions | |
| bool | getspecset (Session *sess, typespecset *specsetptr) |
| ??? | |
| void | prompt (Session *sess, char *string) |
| ??? | |
| bool | getisa (Session *sess, IStreamAddr *isaptr) |
| ??? | |
| bool | getvsa (Session *sess, Tumbler *vsaptr) |
| ??? | |
| bool | gettextset (Session *sess, typetextset *textsetptr) |
| ??? | |
| bool | getnumber (Session *sess, int *numptr) |
| ??? | |
| bool | getcutseq (Session *sess, typecutseq *cutseqptr) |
| ??? | |
| bool | getspanset (Session *sess, typespanset *spansetptr, typeitemid id) |
| ??? | |
| bool | getspan (Session *sess, typespan *spanptr, typeitemid id) |
| ??? | |
| bool | gettumbler (Session *sess, Tumbler *tumblerptr) |
| parse a tumbler value from the input stream | |
| bool | validaccount (Session *sess, IStreamAddr *accountptr) |
| ??? | |
| void | error (Session *sess, char *string) |
| ??? | |
| bool | gettext (Session *sess, typetext *textptr) |
| ??? | |
| bool | getvspec (Session *sess, typevspec *vspecptr) |
| ??? | |
| bool | validrequest (Session *sess, typerequest request) |
| ??? | |
| bool | getnum (Session *sess, int *numptr) |
| ??? | |
| bool | eatchar (Session *sess, char c) |
| if specified char is at front of input stream, grab and discard; else leave it alone | |
| bool | needchar (Session *sess, char c) |
| ??? | |
| bool | getbool (Session *sess, bool *boolptr) |
| ??? | |
| bool | getrequest (Session *sess, typerequest *requestptr) |
| ??? | |
| bool | getboolset (Session *sess, typeboolsetnode **boolsetptr) |
| ??? | |
(to be defined)
Definition in file get2.cxx.
|
||||||||||||
|
if specified char is at front of input stream, grab and discard; else leave it alone (to be defined)
Definition at line 157 of file get2.cxx. References Session::inp, and metachar.
|
|
||||||||||||
|
??? (to be defined)
Definition at line 113 of file put.cxx.
00114 : User's session context 00115 char *string) 00116 { 00117 fprintf(sess->errp, "%s", string); 00118 } |
|
||||||||||||
|
??? (to be defined)
Definition at line 263 of file get2.cxx. References eatchar(), error(), Session::inp, and prompt(). Referenced by getboolset(), getcutseq(), getspanset(), and getspecset().
00264 : User's session context 00265 bool *boolptr) 00266 { 00267 prompt(sess, "(y/n) "); 00268 int c = getc(sess->inp); 00269 if (isupper(c)) 00270 c = tolower(c); 00271 00272 eatchar(sess, '\n'); 00273 00274 if (c == 'y') { 00275 *boolptr = true; 00276 return true; 00277 00278 } else if (c == 'n') { 00279 *boolptr = false; 00280 return true; 00281 00282 } else { 00283 error(sess, "need 'y' or 'n'"); 00284 return false; 00285 } 00286 } |
|
||||||||||||
|
??? (to be defined)
Definition at line 606 of file get2.cxx. References getbool(), getspanset(), ISPANID, typeboolsetnode::itemid, typeboolsetnode::next, NODEID, NULL, prompt(), and typeboolsetnode::val.
00607 : User's session context 00608 typeboolsetnode **boolsetptr) 00609 { 00610 bool disjunct; 00611 typeboolsetnode *boolset; 00612 00613 for (;;) { 00614 prompt(sess, "any disjunctions? "); 00615 if (!getbool(sess, &disjunct)) 00616 return false; 00617 00618 if (!disjunct) { 00619 *boolsetptr = NULL; 00620 return true; 00621 } 00622 00623 boolset = new(sess) typeboolsetnode; 00624 // boolset = (typeboolsetnode *) sess->alloc(sizeof(typeboolsetnode)); 00625 00626 prompt(sess, "enter disjunction=> "); 00627 if (!getspanset(sess, &boolset->val, ISPANID)) 00628 return false; 00629 00630 /* zzz & zzz */ 00631 boolset->itemid = NODEID; 00632 *boolsetptr = boolset; 00633 boolsetptr = &boolset->next; 00634 } 00635 } |
|
||||||||||||
|
??? (to be defined)
Definition at line 432 of file get2fe.cxx. References typecutseq::cutsarray, getnumber(), gettumbler(), and typecutseq::numberofcuts. Referenced by getrearrange().
00433 : User's session context 00434 typecutseq *cutseqptr) 00435 { 00436 int ncuts, i; 00437 00438 /* fprintf (logfile, " cutseq"); */ 00439 if (!(getnumber(sess, &ncuts) && (ncuts == 3 || ncuts == 4))) 00440 return false; 00441 00442 /* fprintf (logfile, " {"); */ 00443 cutseqptr->numberofcuts = ncuts; 00444 00445 for (i = 0; i < ncuts; ++i) { 00446 if (!gettumbler(sess, &cutseqptr->cutsarray[i])) 00447 return false; 00448 } 00449 /* fprintf (logfile, " }"); */ 00450 return true; 00451 } |
|
||||||||||||
|
??? (to be defined) Referenced by getcopy(), getcreatelink(), getcreatenewversion(), getdeletevspan(), getfindnextnlinksfromtothree(), getfollowlink(), getinsert(), getrearrange(), getretrievedocvspan(), getretrievedocvspanset(), getspan(), and getvspec(). |
|
||||||||||||
|
??? (to be defined)
Definition at line 120 of file get2.cxx. References Session::errp, Session::inp, and metachar. Referenced by getnumber(), gettdigit(), and gettumbler().
00121 : User's session context 00122 int *numptr) 00123 { /* inside temporary */ 00124 metachar c; 00125 int num; 00126 00127 bool flag = false; /* should check for minus */ 00128 for (num = 0; (c = getc(sess->inp)) != EOF && isdigit(c);) { 00129 num = num * 10 + c - '0'; 00130 flag = true; 00131 } 00132 00133 if (!flag) { 00134 fprintf(sess->errp, "no number\n"); 00135 #ifndef DISTRIBUTION 00136 if (c == '?' || c == 'h') { 00137 system("cat /usr3/xu/requests.j"); 00138 } else if (c == '!') { 00139 system("csh"); 00140 } 00141 #endif 00142 } else { 00143 ungetc(c, sess->inp); 00144 *numptr = num; 00145 } 00146 return flag; 00147 } |
|
||||||||||||
|
??? (to be defined)
Definition at line 266 of file get2fe.cxx. References pullc(), and WORDELIM. Referenced by getcutseq(), getfindnextnlinksfromtothree(), getfollowlink(), getopen(), getrequest(), getspecset(), gettextset(), and setdebug().
00267 : User's session context 00268 int *numptr) 00269 { 00270 int num = 0; 00271 bool flag = false; 00272 00273 char c; 00274 while ((c = pullc(sess)) && isdigit(c)) { 00275 num = num * 10 + c - '0'; 00276 flag = true; 00277 } 00278 *numptr = num; 00279 /* fprintf (logfile, " %d", *numptr); */ 00280 return flag && (c == WORDELIM || c == '\n'); 00281 } |
|
||||||||||||
|
??? (to be defined)
Definition at line 326 of file get2.cxx.
00327 : User's session context 00328 typerequest *requestptr) 00329 { 00330 prompt(sess, "\nrequest? "); 00331 int c = getc(sess->inp); 00332 if ((int) c == EOF) { 00333 L("endfile\n"); 00334 sess->inp = stdin; 00335 } /* else if (c == ':') { while ((c = * getc (sess->inp)) != '\n'); * return 00336 * (false); } */ 00337 ungetc(c, sess->inp); 00338 return getnumber(sess, requestptr) && validrequest(sess, *requestptr); 00339 } |
|
||||||||||||||||
|
??? (to be defined) |
|
||||||||||||||||
|
??? (to be defined) |
|
||||||||||||
|
??? (to be defined)
Definition at line 312 of file get2fe.cxx. References getnumber(), getspan(), getvspec(), ISPANID, NULL, pullc(), SPANFLAG, typespecset, VSPECFLAG, and WORDELIM. Referenced by getcopy(), getcreatelink(), getfinddocscontaining(), getfindlinksfromtothree(), getretrieveendsets(), getretrievev(), and getshowrelationof2versions().
00313 : User's session context 00314 typespecset *specsetptr) 00315 { 00316 int num; 00317 char c, c1; 00318 typespecset specset; 00319 00320 *specsetptr = NULL; 00321 if (!getnumber(sess, &num)) 00322 return false; 00323 00324 if (num == 0) 00325 return true; 00326 00327 while (num--) { 00328 c = pullc(sess); 00329 if ((c != SPANFLAG) && (c != VSPECFLAG)) 00330 return false; 00331 00332 /* mightn't work */ if ((c1 = pullc(sess)) != WORDELIM && c1 != '\n') 00333 return false; 00334 00335 if (c == SPANFLAG) { 00336 specset = (typespecset) new(sess) typespan; 00337 // specset = (typespecset) sess->alloc(sizeof(typespan)); 00338 if (!getspan(sess, (typespan *) specset, ISPANID)) 00339 return false; 00340 } else { 00341 specset = (typespecset) new(sess) typevspec; 00342 // specset = (typespecset) sess->alloc(sizeof(typevspec)); 00343 if (!getvspec(sess, (typevspec *) specset)) 00344 return false; 00345 } 00346 00347 *specsetptr = specset; 00348 specsetptr = (typespecset *) & ((typeitemheader *) specset)->next; 00349 } 00350 return true; 00351 } |
|
||||||||||||
|
??? (to be defined)
Definition at line 540 of file get2.cxx. References GRANTEXTLENGTH, Session::inp, typetext::itemid, typetext::length, typetext::string, and TEXTID.
00541 : User's session context 00542 typetext *textptr) 00543 { 00544 if (!fgets(textptr->string, GRANTEXTLENGTH, sess->inp)) { 00545 textptr->length = 0; 00546 return false; 00547 } 00548 00549 textptr->length = strlen(textptr->string); 00550 if (textptr->length <= 1) 00551 return false; 00552 00553 /* remove newlines */ 00554 /* 00555 * if (textptr->string[textptr->length - 1] == '\n') 00556 * textptr->string[--textptr->length] = '\0'; */ 00557 00558 textptr->itemid = TEXTID; 00559 return true; 00560 } |
|
||||||||||||
|
??? (to be defined)
Definition at line 461 of file get2fe.cxx. References getnumber(), gettext(), typetext::next, NULL, and typetextset. Referenced by getinsert().
00462 : User's session context 00463 typetextset *textsetptr) 00464 { 00465 typetextset textset; 00466 int num; 00467 00468 /* fprintf (logfile, " textset"); fprintf (sess->errp, "X gettextset\n"); */ 00469 *textsetptr = NULL; 00470 if (!getnumber(sess, &num)) 00471 return false; 00472 00473 /* fprintf (sess->errp, "X number of texts is %d\n", num); fprintf (logfile, " {"); */ 00474 while (num--) { 00475 textset = (typetextset) new(sess) typetext; 00476 // textset = (typetextset) sess->alloc(sizeof(typetext)); 00477 if (!gettext(sess, textset)) 00478 return false; 00479 00480 *textsetptr = textset; 00481 textsetptr = &textset->next; 00482 } 00483 /* fprintf (logfile, " }"); */ 00484 return true; 00485 } |
|
||||||||||||
|
parse a tumbler value from the input stream (to be defined)
Definition at line 187 of file get2fe.cxx. References error(), Tumbler::exp, getnum(), gettdigit(), Tumbler::mantissa, NPLACES, pullc(), tumblerclear, and WORDELIM. Referenced by getclose(), getcopy(), getcreatelink(), getcreatenewversion(), getcreatenode_or_account(), getcutseq(), getdeletevspan(), getfindnextnlinksfromtothree(), getfollowlink(), getinsert(), getisa(), getopen(), getrearrange(), getretrievedocvspan(), getretrievedocvspanset(), getvsa(), getxaccount(), and showorgl().
00188 : User's session context 00189 Tumbler *tumblerptr) 00190 { 00191 char c; 00192 int i, num, value; 00193 00194 /* fprintf(sess->errp,"X gettumbler\n"); */ 00195 tumblerclear(tumblerptr); 00196 getnum(sess, &num); 00197 tumblerptr->exp = -num; 00198 00199 for (i = 0; gettdigit(sess, &value); i++) { 00200 if (i > NPLACES) { 00201 error(sess, "gettumbler overflow\n"); 00202 return false; 00203 } 00204 tumblerptr->mantissa[i] = value; 00205 } 00206 /* fprintf (logfile, " "); puttumbler (logfile, tumblerptr); */ 00207 return (c = pullc(sess)) == WORDELIM || c == '\n'; 00208 } |
|
||||||||||||
|
??? (to be defined) Referenced by getcopy(), getcutseq(), and getinsert(). |
|
||||||||||||
|
??? (to be defined)
Definition at line 429 of file get2.cxx. References typevspec::docisa, getisa(), getspanset(), typevspec::itemid, typevspec::next, NULL, prompt(), VSPANID, typevspec::vspanset, and VSPECID.
00430 : User's session context 00431 typevspec *vspecptr) 00432 { 00433 vspecptr->itemid = VSPECID; 00434 vspecptr->next = NULL; 00435 00436 prompt(sess, "document=> "); 00437 if (!(getisa(sess, &vspecptr->docisa) && getspanset(sess, &vspecptr->vspanset, VSPANID))) 00438 return false; 00439 00440 return true; 00441 } |
|
||||||||||||
|
??? (to be defined)
Definition at line 178 of file get2.cxx. References eatchar(), and Session::errp. Referenced by getnumber(), and gettumbler().
00179 : User's session context 00180 char c) 00181 { 00182 if (!eatchar(sess, c)) { 00183 fprintf(sess->errp, "needed a "); 00184 00185 if (c == '\n') 00186 fprintf(sess->errp, "newline\n"); 00187 else 00188 fprintf(sess->errp, "%c\n", c); 00189 00190 return false; 00191 } 00192 return true; 00193 } |
|
||||||||||||
|
??? (to be defined)
Definition at line 98 of file put.cxx.
00099 : User's session context 00100 char *string) 00101 { 00102 fprintf(sess->outp, "%s", string); 00103 } |
|
||||||||||||
|
??? (to be defined)
Definition at line 587 of file get2fe.cxx. Referenced by getxaccount().
00588 : User's session context 00589 IStreamAddr *accountptr) 00590 { 00591 return true; 00592 } |
|
||||||||||||
|
??? (to be defined)
Definition at line 349 of file get2.cxx. References Session::errp, NREQUESTS, NULL, and requestfns.
00350 : User's session context 00351 typerequest request) 00352 { 00353 if (request >= 0 && request < NREQUESTS && requestfns[request] != NULL) 00354 return true; 00355 00356 fprintf(sess->errp, "invalid request: %d\n", request); 00357 return false; 00358 } |
1.3.4