home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / W / DEVBBS.ZIP / DEFAULTS.C < prev    next >
Text File  |  1992-08-04  |  17KB  |  750 lines

  1. /*****************************************************************************
  2.  
  3.                 WWIV Version 4
  4.                     Copyright (C) 1988-1991 by Wayne Bell
  5.  
  6. *****************************************************************************/
  7.  
  8. #include "vars.h"
  9. #pragma hdrstop
  10.  
  11. void select_editor()
  12. {
  13.   char s[81],s1[81],*ss;
  14.   int i;
  15.  
  16.   helpl=37;
  17.   if (numed==0) {
  18.     nl();
  19.     pl("eNo full screen editors available.");
  20.     nl();
  21.     return;
  22.   }
  23.   for (i=0; i<5; i++)
  24.     odc[i]=0;
  25.   pl("0. Normal non-full screen editor");
  26.   for (i=0; i<numed; i++) {
  27.     npr("%d. %s\r\n",i+1,editors[i].description);
  28.     if (((i+1) %10)==0)
  29.       odc[(i+1)/10-1]=(i+1)/10;
  30.   }
  31.   nl();
  32.   ansic(2);
  33.   npr("Which editor (1-%d, <C/R>=leave as is) ? ",numed);
  34.   ss=mmkey(2);
  35.   i=atoi(ss);
  36.   if ((i>=1) && (i<=numed))
  37.     thisuser.defed=i;
  38.   else
  39.     if (strcmp(ss,"0")==0)
  40.       thisuser.defed=0;
  41. }
  42.  
  43. void print_cur_stata()
  44. {
  45.   char s[81],s1[81],s2[81];
  46.   userrec ur;
  47.  
  48.   yourinfo();
  49.   nl();
  50.   pl("                    fYour Configurable Defaults");
  51.   npr("7[117] fScreen size       7: e%d X %d",
  52.     thisuser.screenchars,
  53.     thisuser.screenlines);
  54.   npr("       7[127] fANSI     7: e%s\r\n",
  55.      (thisuser.sysstatus & sysstatus_ansi)?
  56.        ((thisuser.sysstatus & sysstatus_color)? "Color":"Monochrome"):
  57.      "No ANSI");
  58.   npr("7[137] fPause on screen   7: e%-3s",
  59.      (thisuser.sysstatus & sysstatus_pause_on_page)?"On":"Off");
  60.   outstr("           7[147] fMailbox  7:e ");
  61.   if ((thisuser.forwardsys==0) && (thisuser.forwardusr==0))
  62.     pl("Normal");
  63.   else {
  64.     if (thisuser.forwardsys) {
  65.       sprintf(s,"Forward to #%u @%u.",thisuser.forwardusr,thisuser.forwardsys);
  66.       pl(s);
  67.     } else {
  68.       read_user(thisuser.forwardusr,&ur);
  69.       if (ur.inact & inact_deleted) {
  70.         thisuser.forwardusr=0;
  71.         pl("Normal");
  72.       } else {
  73.         sprintf(s,"Forward to %s",nam(&ur,thisuser.forwardusr));
  74.         pl(s);
  75.       }
  76.     }
  77.   }
  78.   pl("7[157] fConfigured Q-scan                 7[167] fChange password");
  79.   npr("7[177] fUpdate macros");
  80.   pl("                     7[187] fChange colors");
  81.   npr("7[197] fFull screen editor7: e%s",
  82.       ((thisuser.defed) && (thisuser.defed<=numed))?
  83.         editors[thisuser.defed-1].description:"None.");
  84.     npr("         7[1A7] fExtended colors  7: e%s\r\n",
  85.       (thisuser.sysstatus & sysstatus_funky_colors)?"Yes":"No");
  86.   npr("7[1B7] fOptional lines    7: e%-2d\r\n",thisuser.optional_val);
  87.   npr("7[1O7] fPersonal Tag      7: e%s\r\n",thisuser.note);
  88.   pl("7[1Q7] fQuit to main menu");
  89.   nl();
  90.   nl();
  91. }
  92.  
  93. void print_cur_stat()
  94. {
  95.   char s[81],s1[81],s2[81];
  96.   userrec ur;
  97.  
  98.   if (okansi())
  99.     print_cur_stata();
  100.   else {
  101.   yourinfo();
  102.   nl();
  103.   pl("                    Your Configurable Defaults");
  104.   npr("[1] Screen size       : %d X %d",
  105.     thisuser.screenchars,
  106.     thisuser.screenlines);
  107.   npr("       [2] ANSI     : %s\r\n",
  108.      (thisuser.sysstatus & sysstatus_ansi)?
  109.        ((thisuser.sysstatus & sysstatus_color)? "Color":"Monochrome"):
  110.      "No ANSI");
  111.   npr("[3] Pause on screen   : %-3s",
  112.      (thisuser.sysstatus & sysstatus_pause_on_page)?"On":"Off");
  113.   outstr("           [4] Mailbox  : ");
  114.   if ((thisuser.forwardsys==0) && (thisuser.forwardusr==0))
  115.     pl("Normal");
  116.   else {
  117.     if (thisuser.forwardsys) {
  118.       sprintf(s,"Forward to #%u @%u.",thisuser.forwardusr,thisuser.forwardsys);
  119.       pl(s);
  120.     } else {
  121.       read_user(thisuser.forwardusr,&ur);
  122.       if (ur.inact & inact_deleted) {
  123.         thisuser.forwardusr=0;
  124.         pl("Normal");
  125.       } else {
  126.         sprintf(s,"Forward to %s",nam(&ur,thisuser.forwardusr));
  127.         pl(s);
  128.       }
  129.     }
  130.   }
  131.   pl("[5] Configured Q-scan                 [6] Change password");
  132.   npr("[7] Update macros");
  133.   npr("                     [B] Optional lines  : %-2d\r\n",thisuser.optional_val);
  134.   npr("[O] Personal Tag      : %s\r\n",thisuser.note);
  135.   pl("[Q] Quit to main menu");
  136.   nl();
  137.   nl();
  138.   }
  139. }
  140.  
  141. char *cn(char c)
  142. {
  143.   static char s[20];
  144.  
  145.   if ((checkcomp("Ami")) || (checkcomp("Mac"))) {
  146.     sprintf(s,"Color #%d",c);
  147.     return(s);
  148.   }
  149.   switch(c) {
  150.     case 0:
  151.       return("Black");
  152.     case 1:
  153.       return("Blue");
  154.     case 2:
  155.       return("Green");
  156.     case 3:
  157.       return("Cyan");
  158.     case 4:
  159.       return("Red");
  160.     case 5:
  161.       return("Magenta");
  162.     case 6:
  163.       return("Yellow");
  164.     case 7:
  165.       return("White");
  166.   }
  167.   return("");
  168. }
  169.  
  170. char *describe(char col)
  171. {
  172.   static char s[81];
  173.   char s1[81];
  174.  
  175.  
  176.   if (thisuser.sysstatus & sysstatus_color) {
  177.     strcpy(s1,cn(col&0x07));
  178.     sprintf(s,"%s on %s", s1, cn((col>>4)&0x07));
  179.   } else {
  180.     if ((col & 0x07) == 0)
  181.       strcpy(s,"Inversed");
  182.     else
  183.       strcpy(s,"Normal");
  184.   }
  185.   if (col & 0x08) {
  186.     if ((checkcomp("Ami")) || (checkcomp("Mac")))
  187.       strcat(s,", Bold");
  188.     else
  189.       strcat(s,", Intense");
  190.   }
  191.   if (col & 0x80) {
  192.     if (checkcomp("Ami"))
  193.       strcat(s,", Italicized");
  194.     else
  195.       if (checkcomp("Mac"))
  196.         strcat(s,", Underlined");
  197.       else
  198.         strcat(s,", Blinking");
  199.   }
  200.   return(s);
  201. }
  202.  
  203. void color_list()
  204. {
  205.   int i;
  206.  
  207.   nl();
  208.   nl();
  209.   for (i=0; i<8; i++) {
  210.     if (i==0)
  211.       setc(0x70);
  212.     else
  213.       setc(i);
  214.     npr("%d. %s",i,cn(i));
  215.     setc(0x07);
  216.     nl();
  217.   }
  218. }
  219.  
  220. void change_colors()
  221. {
  222.   int i,done,i1,i2;
  223.   char s[81],ch,nc;
  224.  
  225.   done=0;
  226.   helpl=36;
  227.   nl();
  228.   do {
  229.     if ((thisuser.sysstatus & sysstatus_color)==0) {
  230.       strcpy(s,"Monochrome base color : ");
  231.       if ((thisuser.bwcolors[1] & 0x70) == 0)
  232.         strcat(s,cn(thisuser.bwcolors[1] & 0x07));
  233.       else
  234.         strcat(s,cn((thisuser.bwcolors[1] >> 4) & 0x07));
  235.       pl(s);
  236.       nl();
  237.     }
  238.     for (i=0; i<8; i++) {
  239.       ansic(i);
  240.       itoa(i,s,10);
  241.       strcat(s,". ");
  242.       switch(i) {
  243.         case 0:
  244.           strcat(s,"Default           ");
  245.           break;
  246.         case 1:
  247.           strcat(s,"Yes/No            ");
  248.           break;
  249.         case 2:
  250.           strcat(s,"Prompt            ");
  251.           break;
  252.         case 3:
  253.           strcat(s,"Note              ");
  254.           break;
  255.         case 4:
  256.           strcat(s,"Input line        ");
  257.           break;
  258.         case 5:
  259.           strcat(s,"Yes/No Question   ");
  260.           break;
  261.         case 6:
  262.           strcat(s,"Notice!           ");
  263.           break;
  264.         case 7:
  265.           strcat(s,"Border            ");
  266.           break;
  267.       }
  268.       if (thisuser.sysstatus & sysstatus_color)
  269.         strcat(s,describe(thisuser.colors[i]));
  270.       else
  271.         strcat(s,describe(thisuser.bwcolors[i]));
  272.       pl(s);
  273.     }
  274.     nl();
  275.     prt(2,"7[1Change which7] (10-77, 1Q=Quit7) 1? ");
  276.     ch=onek("Q01234567");
  277.     if (ch=='Q')
  278.       done=1;
  279.     else {
  280.       i1=ch-'0';
  281.       if (thisuser.sysstatus & sysstatus_color)  {
  282.         color_list();
  283.         ansic(0);
  284.         nl();
  285.         prt(2,"Foreground? ");
  286.         ch=onek("01234567");
  287.         nc=ch-'0';
  288.         prt(2,"Background? ");
  289.         ch=onek("01234567");
  290.         nc=nc | ((ch-'0') << 4);
  291.       } else {
  292.          nl();
  293.          prt(5,"Inversed? ");
  294.            if (yn()) {
  295.              if ((thisuser.bwcolors[1] & 0x70) == 0)
  296.                nc=0 | ((thisuser.bwcolors[1] & 0x07) << 4);
  297.              else
  298.                nc=(thisuser.bwcolors[1] & 0x70);
  299.            } else {
  300.              if ((thisuser.bwcolors[1] & 0x70) == 0)
  301.                nc=0 | (thisuser.bwcolors[1] & 0x07);
  302.              else
  303.                nc=((thisuser.bwcolors[1] & 0x70) >> 4);
  304.            }
  305.       }
  306.       if ((checkcomp("Ami")) || (checkcomp("Mac")))
  307.         prt(5,"Bold? ");
  308.       else
  309.         prt(5,"Intensified? ");
  310.       if (yn())
  311.         nc |= 0x08;
  312.  
  313.       if (checkcomp("Ami"))
  314.         prt(5,"Italicized? ");
  315.       else
  316.         if (checkcomp("Mac"))
  317.           prt(5,"Underlined? ");
  318.         else
  319.           prt(5,"Blinking? ");
  320.       if (yn())
  321.         nc |= 0x80;
  322.       nl();
  323.       nl();
  324.       setc(nc);
  325.       outstr(describe(nc));
  326.       ansic(0);
  327.       nl();
  328.       nl();
  329.       prt(5,"Is this OK? ");
  330.       if (yn()) {
  331.         nl();
  332.         pl("Color saved.");
  333.         nl();
  334.         if (thisuser.sysstatus & sysstatus_color)
  335.           thisuser.colors[i1]=nc;
  336.         else
  337.           thisuser.bwcolors[i1]=nc;
  338.       } else {
  339.         nl();
  340.         pl("Not saved, then.");
  341.         nl();
  342.       }
  343.     }
  344.   } while ((!done) && (!hangup));
  345. }
  346.  
  347. void l_config_qscan()
  348. {
  349.   int i,abort;
  350.   char s[81];
  351.  
  352.   abort=0;
  353.   nl();
  354.   pl("fBoards to q-scan marked with 'e*f'");
  355.   nl();
  356.   for (i=0; (i<MAX_SUBS) && (usub[i].subnum!=-1) && (!abort); i++) {
  357.     sprintf(s,"%c %s. %s",
  358. #if MAX_SUBS>32
  359.       (usub[i].subnum>=32)?
  360.          (((1L << (usub[i].subnum-32)) & thisuser.qscn2)?'*':' '):
  361.          (((1L << (usub[i].subnum)) & thisuser.qscn)?'*':' '),
  362. #else
  363.       ((1L << (usub[i].subnum)) & thisuser.qscn)?'*':' ',
  364. #endif
  365.       usub[i].keys,
  366.       subboards[usub[i].subnum].name);
  367.     pla(s,&abort);
  368.   }
  369.   nl();
  370.   nl();
  371. }
  372.  
  373. void config_qscan()
  374. {
  375.   char *s;
  376.   int i,done;
  377.  
  378.   l_config_qscan();
  379.   done=0;
  380.   do {
  381.     nl();
  382.     pl("fEnter sub-board identifier, or Q to Quit");
  383.     helpl=7;
  384.     outstr("eConfig: ");
  385.     s=mmkey(0);
  386.     if (s[0])
  387.       for (i=0; i<MAX_SUBS; i++)
  388.         if (strcmp(usub[i].keys,s)==0) {
  389. #if MAX_SUBS>32
  390.           if (usub[i].subnum>=32)
  391.             thisuser.qscn2 ^=((1L) << (usub[i].subnum-32));
  392.           else
  393.             thisuser.qscn ^=((1L) << (usub[i].subnum));
  394. #else
  395.           thisuser.qscn ^=((1L) << (usub[i].subnum));
  396. #endif
  397.         }
  398.     if (strcmp(s,"Q")==0)
  399.       done=1;
  400.     if (strcmp(s,"?")==0)
  401.       l_config_qscan();
  402.   } while ((!done) && (!hangup));
  403. }
  404.  
  405. void list_macro(unsigned char *s)
  406. {
  407.   int i;
  408.  
  409.   i=0;
  410.   outchr('\"');
  411.   while ((i<80) && (s[i]!=0)) {
  412.     if (s[i]>=32)
  413.       outchr(s[i]);
  414.     else {
  415.       outchr('^');
  416.       outchr(s[i]+64);
  417.     }
  418.     ++i;
  419.   }
  420.   outchr('"');
  421.   nl();
  422. }
  423.  
  424. void make_macros()
  425. {
  426.   unsigned char tempmac[81],s[81];
  427.   unsigned char ch,ch1;
  428.   int i,i1,done,done1;
  429.  
  430.   done=0;
  431.   do {
  432.     nl();
  433.     prt(2,"1Macrosf: 1Lf:1istf, 1Mf:1akef, 1Qf:1uit  f: ");
  434.     helpl=33;
  435.     ch=onek("QLM");
  436.     switch(ch) {
  437.       case 'Q':
  438.         done=1;
  439.         break;
  440.       case 'L':
  441.         nl();
  442.         nl();
  443.     pl("1Ctrl-D macro: ");
  444.     list_macro(&(thisuser.macros[0][0]));
  445.     nl();
  446.     pl("1Ctrl-F macro: ");
  447.     list_macro(&(thisuser.macros[1][0]));
  448.     nl();
  449.     pl("1Ctrl-A macro: ");
  450.     list_macro(&(thisuser.macros[2][0]));
  451.     break;
  452.       case 'M':
  453.         nl();
  454.     prt(2,"7[1Which7] (1A7,1D7,1F7, 1Q7=1quit7) 1: ");
  455.     ch1=onek("QADF");
  456.     if (ch1!='Q') {
  457.       switch(ch1) {
  458.         case 'A': i1=2; break;
  459.         case 'D': i1=0; break;
  460.         case 'F': i1=1; break;
  461.       }
  462.       strcpy(s,&(thisuser.macros[i1][0]));
  463.       thisuser.macros[i1][0]=0;
  464.       done1=0;
  465.       i=0;
  466.       nl();
  467.       pl("eEnter your macro now, hit ctrl-Z when done.");
  468.       nl();
  469.       okskey=0;
  470.           do {
  471.             ch1=getkey();
  472.             if (ch1==26)
  473.               done1=1;
  474.             else
  475.               if (ch1==8) {
  476.                 if (i>0) {
  477.                   i--;
  478.                   backspace();
  479.                   if (tempmac[i]<32)
  480.                     backspace();
  481.                 }
  482.               } else {
  483.                 if (ch1>=32) {
  484.                   tempmac[i++]=ch1;
  485.                   outchr(ch1);
  486.                 } else {
  487.                   tempmac[i++]=ch1;
  488.                   outchr('^');
  489.                   outchr(ch1+64);
  490.                 }
  491.               }
  492.             if (i>=78)
  493.               done1=1;
  494.           } while ((!done1) && (!hangup));
  495.       okskey=1;
  496.           tempmac[i]=0;
  497.           nl();
  498.       pl("eYou enteredf:");
  499.       nl();
  500.       nl();
  501.       list_macro(tempmac);
  502.       nl();
  503.       prt(5,"Is this OK? ");
  504.       if (yn()) {
  505.         strcpy(&(thisuser.macros[i1][0]),tempmac);
  506.         nl();
  507.         pl("fMacro saved.");
  508.       } else {
  509.         nl();
  510.             strcpy(&(thisuser.macros[i1][0]),s);
  511.         pl("eNothing saved.");
  512.       }
  513.     }
  514.     break;
  515.     }
  516.   } while ((!done) && (!hangup));
  517. }
  518.  
  519. void input_pw1()
  520. {
  521.   char s[81],s1[81];
  522.   int ok;
  523.  
  524.   nl();
  525.   prt(5,"eChange password? ");
  526.   if (yn()) {
  527.     nl();
  528.     pl("1You must now enter your current password.");
  529.     outstr(": ");
  530.     mpl(8);
  531.     echo=0;
  532.     input(s,8);
  533.     if (strcmp(s,thisuser.pw)) {
  534.       nl();
  535.       pl("6Incorrect.");
  536.       nl();
  537.       return;
  538.     }
  539.     nl();
  540.     nl();
  541.     pl("1Enter your new password, 3 to 8 characters long.");
  542.     outstr(": ");
  543.     mpl(8);
  544.     echo=0;
  545.     input(s,8);
  546.     nl();
  547.     nl();
  548.     pl("1Repeat password for verification.");
  549.     outstr(": ");
  550.     mpl(8);
  551.     echo=0;
  552.     input(s1,8);
  553.     if (strcmp(s,s1)==0) {
  554.       strcpy(thisuser.pw,s);
  555.       nl();
  556.       pl("fPassword changed.");
  557.       nl();
  558.       sysoplog("Changed Password.");
  559.     } else {
  560.       nl();
  561.       pl("6VERIFY FAILED.");
  562.       pl("6Password not changed.");
  563.       nl();
  564.     }
  565.   }
  566. }
  567.  
  568. void modify_mailbox()
  569. {
  570.   int i,i1,i2;
  571.   unsigned int u;
  572.   char s[81];
  573.   net_system_list_rec *csne;
  574.  
  575.   nl();
  576.   helpl=35;
  577.   prt(5,"eDo you want to forward your mail? ");
  578.   if (!yn()) {
  579.     thisuser.forwardsys=0;
  580.     thisuser.forwardusr=0;
  581.     return;
  582.   }
  583.   nl();
  584.   if (syscfg.systemnumber) {
  585.     prt(5,"eForward to another system? ");
  586.     if (yn()) {
  587.       nl();
  588.       prt(2,"1Which system (number)? ");
  589.       input(s,5);
  590.       i2=atoi(s);
  591.       if ((csne=next_system(i2))==NULL) {
  592.         nl();
  593.     pl("6Unknown system.");
  594.     nl();
  595.     return;
  596.       }
  597.       nl();
  598.       npr("1System name: f%s\r\n",csne -> name);
  599.       nl();
  600.       if (i2==syscfg.systemnumber) {
  601.         nl();
  602.     pl("6That's this system.");
  603.     nl();
  604.     return;
  605.       }
  606.       prt(2,"eWhich user number on that system? ");
  607.       input(s,5);
  608.       i=atoi(s);
  609.       if ((i>0) && (i<20000)) {
  610.         thisuser.forwardsys=i2;
  611.         thisuser.forwardusr=i;
  612.         nl();
  613.     pl("fSaved.");
  614.     nl();
  615.       }
  616.       return;
  617.     }
  618.   }
  619.   nl();
  620.   prt(2,"eForward to which user? ");
  621.   input(s,40);
  622.   i=finduser1(s);
  623.   if (i==usernum) {
  624.     thisuser.forwardsys=0;
  625.     thisuser.forwardusr=0;
  626.     nl();
  627.     pl("fForwarding reset.");
  628.     nl();
  629.     return;
  630.   }
  631.   if (i>0) {
  632.     thisuser.forwardsys=0;
  633.     thisuser.forwardusr=i;
  634.     nl();
  635.     pl("fSaved.");
  636.     nl();
  637.   }
  638. }
  639.  
  640. void optional_lines()
  641. {
  642.   char s[81];
  643.   int i;
  644.  
  645.   pl("7You may specify your optional lines value from 0-10,");
  646.   pl("70 being all, 10 being none.");
  647.   prt(2,"eWhat value? ");
  648.   input(s,2);
  649.  
  650.   i=atoi(s);
  651.   if ((s[0]) && (i>=0) && (i<11))
  652.     thisuser.optional_val = i;
  653. }
  654.  
  655. /*void enter_regnum()
  656. {
  657.   char s[81];
  658.   long l;
  659.  
  660.   pl("fYou may now enter your WWIV registration number.");
  661.   pl("fEnter 0 for none.");
  662.   nl();
  663.   prt(2,"eWWIVf: ");
  664.   input(s,5);
  665.   l=atol(s);
  666.   if ((s[0]) && (l>=0))
  667.     thisuser.wwiv_regnum = l;
  668. } */
  669.  
  670. void defaults()
  671. {
  672.   int i,i1,i2,done;
  673.   char s[81],s1[81],s2[81],ch;
  674.  
  675.   done=0;
  676.   print_cur_stat();
  677.   do {
  678.     nl();
  679.     helpl=4;
  680.     if (okansi()) {
  681.       prt(2,"7[1Defaults7]1: 7(11-9,A-B,O,?,Q7) 1: ");
  682.       ch=onek("Q?123456789ABO");
  683.     } else {
  684.       prt(2,"[Defaults]: (1-7,B,O,?,Q) : ");
  685.       ch=onek("Q?1234567BO");
  686.     }
  687.     switch(ch) {
  688.       case 'Q':
  689.         done=1;
  690.         break;
  691.       case '?':
  692.         print_cur_stat();
  693.         break;
  694.       case '1':
  695.         input_screensize();
  696.         break;
  697.       case '2':
  698.         input_ansistat();
  699.         break;
  700.       case '3':
  701.         if (thisuser.sysstatus & sysstatus_pause_on_page)
  702.           thisuser.sysstatus ^= sysstatus_pause_on_page;
  703.         nl();
  704.     prt(5,"ePause each screenfull? ");
  705.     if (yn())
  706.       thisuser.sysstatus |= sysstatus_pause_on_page;
  707.     break;
  708.       case '4':
  709.         modify_mailbox();
  710.         break;
  711.       case '5':
  712.         config_qscan();
  713.         break;
  714.       case '6':
  715.         input_pw1();
  716.         break;
  717.       case '7':
  718.         make_macros();
  719.         break;
  720.       case '8':
  721.         change_colors();
  722.         break;
  723.       case '9':
  724.     select_editor();
  725.     break;
  726.       case 'A':
  727.         if (thisuser.sysstatus & sysstatus_funky_colors)
  728.           thisuser.sysstatus ^= sysstatus_funky_colors;
  729.         nl();
  730.     prt(5,"eUse extended colors? ");
  731.     if (yn())
  732.       thisuser.sysstatus |= sysstatus_funky_colors;
  733.     break;
  734.       case 'B':
  735.         optional_lines();
  736.         break;
  737.       case 'O':
  738.     nl();
  739.     npr("f%s \r\n",thisuser.note);
  740.     nl();
  741.     pl("eYou may now enter your new tag");
  742.     prt(2,":");
  743.     inputl(thisuser.note,40);
  744.     sprintf(s,"Changed Tag to - %s",thisuser.note);
  745.     sysoplog(s);
  746.     break;
  747.     }
  748.   } while ((!done) && (!hangup));
  749. }
  750.