home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / UTIL / WWIVE / MYWIVE.ZIP / DEFAULTS.C < prev    next >
Text File  |  1993-04-17  |  17KB  |  765 lines

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