-+-+-+-+-+-+-+-+ START OF PART 241 -+-+-+-+-+-+-+-+
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM, "GDP identifiers:\n");
X      writeintlst(PTKEINFORM, &gdps, PTKENOTABLE);
X    `7D
X    else
X      phigserror(PTKEINFORM, err);
X  `7D
X  free(gdps.integers);
X`7D  /* do_pinqavailgdp3 */
X
X/*--------------------------------------------------------------------------
V*/
X
Xstatic void do_pinqgse()
X`7B
X  Pwstype wstype;
X  Pint start, err, totlen, i;
X  Pintlst gses;
X
X  readwstype(&wstype);
X  start = readinteger("starting position ? ");
X  pinqgse(wstype, 0, start, &err, &gses, &totlen);
X  gses.number = totlen;
X  gses.integers = (Pint *)calloc(totlen, sizeof(Pint));
X  pinqgse(wstype, totlen, start, &err, &gses, &totlen);
X  if (writeinform)
X  `7B
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM, "GSE identifiers:\n");
X      writeintlst(PTKEINFORM, &gses, PTKENOTABLE);
X    `7D
X    else
X      phigserror(PTKEINFORM, err);
X  `7D
X  free(gses.integers);
X`7D  /* do_pinqgse */
X
X/*--------------------------------------------------------------------------
V*/
X
Xstatic void do_pinqwstypes()
X`7B
X  Pint err, totsize, start, i;
X  Pchar *buffer;
X  Pwstypelst wslist;
X
X#ifdef SUN
X  pinqwstypes(0, &err, buffer, &wslist, &totsize);
X  buffer = (Pchar *)malloc(totsize);
X  pinqwstypes(totsize, &err, buffer, &wslist, &totsize);
X#endif
X#ifdef VMS
X  start = readinteger("starting position ? ");
X  pinqwstypes(0, start, &err, &wslist, &totsize);
X  wslist.ws_types = (Pwstype *)calloc(totsize, sizeof(Pwstype));
X  wslist.number = totsize;
X  pinqwstypes(totsize, start, &err, &wslist, &totsize);
X#endif
X  if (writeinform)
X  `7B
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM,`20
X             "number of available workstation types = ");
X      writeinteger(PTKEINFORM, wslist.number);
X#ifdef VMS
X      phinprintf(PTKEINFORM, "workstation types:\n");
X      writeintarray(PTKEINFORM, wslist.number, wslist.ws_types, PTKENOTABLE)
V;
X#endif
X    `7D
X    else
X      phigserror(PTKEINFORM, err);
X  `7D
X#ifdef SUN
X  free(buffer);
X#endif
X#ifdef VMS
X  free(wslist.ws_types);
X#endif
X`7D  /* do_pinqwstypes */
X
X/*--------------------------------------------------------------------------
V*/
X
Xstatic void do_pinqcolourind()
X`7B
X  Pint wsid, start, err, totlength, i;
X  Pintlst inds;
X
X  wsid = readinteger("workstation identifier ? ");
X  start = readinteger("starting position ? ");
X  pinqcolourind(wsid, 0, start, &err, &inds, &totlength);
X  inds.integers = (Pint *)calloc(totlength, sizeof(Pint));
X  inds.number = totlength;
X  pinqcolourind(wsid, totlength, start, &err, &inds, &totlength);
X  if (writeinform)
X  `7B
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM, "colours:\n");
X      writeintlst(PTKEINFORM, &inds, PTKECOLOURIND);
X    `7D
X    else
X      phigserror(PTKEINFORM, err);
X  `7D
X  free(inds.integers);
X`7D  /* do_pinqcolourind */
X
X/*--------------------------------------------------------------------------
V*/
X
Xstatic void do_pinqedgeind()
X`7B
X  Pint wsid, start, err, totlength, i;
X  Pintlst edgeinds;
X
X  wsid = readinteger("workstation identifier ? ");
X  start = readinteger("starting position ? ");
X  pinqedgeind(wsid, 0, start, &err, &edgeinds, &totlength);
X  edgeinds.integers = (Pint *)calloc(totlength, sizeof(Pint));
X  edgeinds.number = totlength;
X  pinqedgeind(wsid, totlength, start, &err, &edgeinds, &totlength);
X  if (writeinform)
X  `7B
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM, "edges:\n");
X      writeintlst(PTKEINFORM, &edgeinds, PTKENOTABLE);
X    `7D
X    else
X      phigserror(PTKEINFORM, err);
X  `7D
X  free(edgeinds.integers);
X`7D  /* do_pinqedgeind */
X
X/*--------------------------------------------------------------------------
V*/
X
Xstatic void do_pinqintind()
X`7B
X  Pint wsid, start, err, totlength, i;
X  Pintlst inds;
X
X  wsid = readinteger("workstation identifier ? ");
X  start = readinteger("starting position ? ");
X  pinqintind(wsid, 0, start, &err, &inds, &totlength);
X  inds.integers = (Pint *)calloc(totlength, sizeof(Pint));
X  inds.number = totlength;
X  pinqintind(wsid, totlength, start, &err, &inds, &totlength);
X  if (writeinform)
X  `7B
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM, "interiors:\n");
X      writeintlst(PTKEINFORM, &inds, PTKENOTABLE);
X    `7D
X    else
X      phigserror(PTKEINFORM, err);
X  `7D
X  free(inds.integers);
X`7D  /* do_pinqintind */
X
X/*--------------------------------------------------------------------------
V*/
X
Xstatic void do_pinqpatind()
X`7B
X  Pint wsid, start, err, totlength, i;
X  Pintlst inds;
X
X  wsid = readinteger("workstation identifier ? ");
X  start = readinteger("starting position ? ");
X  pinqpatind(wsid, 0, start, &err, &inds, &totlength);
X  inds.integers = (Pint *)calloc(totlength, sizeof(Pint));
X  inds.number = totlength;
X  pinqpatind(wsid, totlength, start, &err, &inds, &totlength);
X  if (writeinform)
X  `7B
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM, "patterns:\n");
X      writeintlst(PTKEINFORM, &inds, PTKENOTABLE);
X    `7D
X    else
X      phigserror(PTKEINFORM, err);
X  `7D
X  free(inds.integers);
X`7D  /* do_pinqpatind */
X
X/*--------------------------------------------------------------------------
V*/
X
Xstatic void do_pinqlineind()
X`7B
X  Pint wsid, start, err, totlength, i;
X  Pintlst inds;
X
X  wsid = readinteger("workstation identifier ? ");
X  start = readinteger("starting position ? ");
X  pinqlineind(wsid, 0, start, &err, &inds, &totlength);
X  inds.integers = (Pint *)calloc(totlength, sizeof(Pint));
X  inds.number = totlength;
X  pinqlineind(wsid, totlength, start, &err, &inds, &totlength);
X  if (writeinform)
X  `7B
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM, "lines:\n");
X      writeintlst(PTKEINFORM, &inds, PTKENOTABLE);
X    `7D
X    else
X      phigserror(PTKEINFORM, err);
X  `7D
X  free(inds.integers);
X`7D  /* do_pinqlineind */
X
X/*--------------------------------------------------------------------------
V*/
X
Xstatic void do_pinqmarkerind()
X`7B
X  Pint wsid, start, err, totlength, i;
X  Pintlst inds;
X
X  wsid = readinteger("workstation identifier ? ");
X  start = readinteger("starting position ? ");
X  pinqmarkerind(wsid, 0, start, &err, &inds, &totlength);
X  inds.integers = (Pint *)calloc(totlength, sizeof(Pint));
X  inds.number = totlength;
X  pinqmarkerind(wsid, totlength, start, &err, &inds, &totlength);
X  if (writeinform)
X  `7B
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM, "markers:\n");
X      writeintlst(PTKEINFORM, &inds, PTKENOTABLE);
X    `7D
X    else
X      phigserror(PTKEINFORM, err);
X  `7D
X  free(inds.integers);
X`7D  /* do_pinqmarkerind */
X
X/*--------------------------------------------------------------------------
V*/
X
Xstatic void do_pinqtextind()
X`7B
X  Pint wsid, start, err, totlength, i;
X  Pintlst inds;
X
X  wsid = readinteger("workstation identifier ? ");
X  start = readinteger("starting position ? ");
X  pinqtextind(wsid, 0, start, &err, &inds, &totlength);
X  inds.integers = (Pint *)calloc(totlength, sizeof(Pint));
X  inds.number = totlength;
X  pinqtextind(wsid, totlength, start, &err, &inds, &totlength);
X  if (writeinform)
X  `7B
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM, "text:\n");
X      writeintlst(PTKEINFORM, &inds, PTKENOTABLE);
X    `7D
X    else
X      phigserror(PTKEINFORM, err);
X  `7D
X  free(inds.integers);
X`7D  /* do_pinqtextind */
X
X/*--------------------------------------------------------------------------
V*/
X
Xstatic void do_pinqviewind()
X`7B
X  Pint wsid, start, err, totlength, i;
X  Pintlst inds;
X
X  wsid = readinteger("workstation identifier ? ");
X  start = readinteger("starting position ? ");
X  pinqviewind(wsid, 0, start, &err, &inds, &totlength);
X  inds.integers = (Pint *)calloc(totlength, sizeof(Pint));
X  inds.number = totlength;
X  pinqviewind(wsid, totlength, start, &err, &inds, &totlength);
X  if (writeinform)
X  `7B
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM, "views:\n");
X      writeintlst(PTKEINFORM, &inds, PTKEVIEWIND);
X    `7D
X    else
X      phigserror(PTKEINFORM, err);
X  `7D
X  free(inds.integers);
X`7D  /* do_pinqviewind */
X
X/*--------------------------------------------------------------------------
V*/
X
Xstatic void do_pinqlinefacil()
X`7B
X  Pwstype wstype;
X  Pint start, err, totlength, i;
X  Plnfac facil;
X
X  readwstype(&wstype);
X  start = readinteger("starting position ? ");
X  pinqlinefacil(wstype, 0, start, &err, &totlength, &facil);
X  facil.types.integers = (Pint *)calloc(totlength, sizeof(Pint));
X  facil.types.number = totlength;
X  pinqlinefacil(wstype, totlength, start, &err, &totlength, &facil);
X  if (writeinform)
X  `7B
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM, "linetypes:\n");
X      writeintlst(PTKEINFORM, &facil.types, PTKENOTABLE);
X      phinprintf(PTKEINFORM, "number of available widths = ");
X      writeinteger(PTKEINFORM, facil.widths);
X      phinprintf(PTKEINFORM, "nominal width = ");
X      writereal(PTKEINFORM, facil.nom_width);
X      phinprintf(PTKEINFORM, "minimum width = ");
X      writereal(PTKEINFORM, facil.min_width);
X      phinprintf(PTKEINFORM, "maximum width = ");
X      writereal(PTKEINFORM, facil.max_width);
X      phinprintf(PTKEINFORM, "number of predefined bundles = ");
X      writeinteger(PTKEINFORM, facil.predefined);
X    `7D
X    else
X      phigserror(PTKEINFORM, err);
X  `7D
X  free(facil.types.integers);
X`7D  /* do_pinqlinefacil */
X
X/*--------------------------------------------------------------------------
V*/
X
Xstatic void do_pinqlinerep()
X`7B
X  Pint wsid, index, err;
X  Pinqtype type;
X  Plnbundl rep;
X
X  wsid = readinteger("workstation identifier ? ");
X  index = readinteger("line index ? ");
X  type = readphigsenum(PTKEINQTYPE, "type of value ? ");
X  pinqlinerep(wsid, index, type, &err, &rep);
X  if (writeinform)
X  `7B
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM, "line representation:\n");
X      writelnbundl(PTKEINFORM, &rep);
X    `7D
X    else
X      phigserror(PTKEINFORM, err);
X  `7D
X`7D  /* do_pinqlinerep */
X
X/*--------------------------------------------------------------------------
V*/
X
Xstatic void do_pinqlocst()
X`7B
X  Pint ws, dev, err, totsize;
X  Pchar *buffer;
X  Plocst state;
X  Pinqtype type;
X
X  ws = readinteger("workstation identifier ? ");
X  dev = readinteger("locator device number ? ");
X  type = readphigsenum(PTKEINQTYPE, "value type ? ");
X  pinqlocst(ws, dev, type, 0, &err, buffer, &totsize, &state);
X  buffer = (Pchar *)malloc(totsize);
X  pinqlocst(ws, dev, type, totsize, &err, buffer, &totsize, &state);
X  if (writeinform)
X  `7B
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM, "current state of locator device %d:\n", dev);
X      phinprintf(PTKEINFORM, "operating mode = ");
X      writephigsenum(PTKEINFORM, PTKEIMODE, state.mode);
X      phinprintf(PTKEINFORM, "echo switch = ");
X      writephigsenum(PTKEINFORM, PTKEESW, state.esw);
X      phinprintf(PTKEINFORM, "initial view index = ");
X      writeintvalue(PTKEINFORM, state.loc.view_index, PTKEVIEWIND);
X      /* Plocst contains a Ploc3 field - probably should be a Ploc
X      ** field. DEC PHIGS error.
X      */
X      phinprintf(PTKEINFORM, "initial position:\n");
X      writepoint3(PTKEINFORM, &state.loc.position);
X      phinprintf(PTKEINFORM, "prompt/echo type = ");
X      writeinteger(PTKEINFORM, state.pet);
X      phinprintf(PTKEINFORM, "limits:\n");
X      writelimit(PTKEINFORM, &state.e_area);
X      writelocrec(PTKEINFORM, dev, state.pet, &state.record);
X    `7D
X    else
X      phigserror(PTKEINFORM, err);
X  `7D
X  free(buffer);
X`7D  /* do_pinqlocst */
X
X/*--------------------------------------------------------------------------
V*/
X
Xstatic void do_pinqlocst3()
X`7B
X  Pint ws, dev, err, totsize;
X  Pchar *buffer;
X  Plocst3 state;
X  Pinqtype type;
X
X  ws = readinteger("workstation identifier ? ");
X  dev = readinteger("locator device number ? ");
X  type = readphigsenum(PTKEINQTYPE, "value type ? ");`20
X  pinqlocst3(ws, dev, type, 0, &err, buffer, &totsize, &state);
X  buffer = (Pchar *)malloc(totsize);
X  pinqlocst3(ws, dev, type, totsize, &err, buffer, &totsize, &state);
X  if (writeinform)
X  `7B
X    phinprintf(PTKEINFORM, "--- %s ---\n", phigsnamelist`5Bactivefunction`5D
V);
X    if (err == 0)
X    `7B
X      phinprintf(PTKEINFORM, "current state of locator 3 device %d:\n", dev)
V;
X      phinprintf(PTKEINFORM, "operating mode = ");
X      writephigsenum(PTKEINFORM, PTKEIMODE, state.mode);
X      phinprintf(PTKEINFORM, "echo switch = ");
X      writephigsenum(PTKEINFORM, PTKEESW, state.esw);
X      phinprintf(PTKEINFORM, "initial view index = ");
X      writeintvalue(PTKEINFORM, state.loc.view_index, PTKEVIEWIND);
X      phinprintf(PTKEINFORM, "initial position:\n");
X      writepoint3(PTKEINFORM, &state.loc.position);
X      phinprintf(PTKEINFORM, "prompt/echo type = ");
X      writeinteger(PTKEINFORM, state.pet);
X      phinprintf(PTKEINFORM, "limits:\n");
X#ifdef SUN
+-+-+-+-+-+-+-+-  END  OF PART 241 +-+-+-+-+-+-+-+-