Annotation of sbbs/src/sbbs3/gtkuseredit/events.c, revision 1.1

1.1     ! root        1: #include <gtk/gtk.h>
        !             2: #include <glade/glade.h>
        !             3: 
        !             4: #include "sbbs.h"
        !             5: #include "dirwrap.h"
        !             6: #include "xpbeep.h"
        !             7: #include "datewrap.h"
        !             8: #include "semwrap.h"
        !             9: 
        !            10: #include "gtkuseredit.h"
        !            11: 
        !            12: /*
        !            13:  * Sets the save buttons sensitive.
        !            14:  */
        !            15: void user_changed(GtkWidget *wiggy, gpointer data)
        !            16: {
        !            17:        GtkWidget       *w;
        !            18: 
        !            19:        w=glade_xml_get_widget(xml, "bSaveUser");
        !            20:        if(w==NULL)
        !            21:                fprintf(stderr,"Cannot get the save user button widget\n");
        !            22:        else
        !            23:                gtk_widget_set_sensitive(GTK_WIDGET(w),TRUE);
        !            24:        w=glade_xml_get_widget(xml, "save1");
        !            25:        if(w==NULL)
        !            26:                fprintf(stderr,"Cannot get the save user menu widget\n");
        !            27:        else
        !            28:                gtk_widget_set_sensitive(GTK_WIDGET(w),TRUE);
        !            29: }
        !            30: 
        !            31: /*
        !            32:  * Prevents anything but digits from being entered into an input box
        !            33:  */
        !            34: void digit_insert_text_handler (GtkEntry *entry, const gchar *text, gint length, gint *position, gpointer data)
        !            35: {
        !            36:        GtkEditable *editable = GTK_EDITABLE(entry);
        !            37:        int i, count=0, beep=0;
        !            38:        gchar *result = g_new (gchar, length);
        !            39: 
        !            40:        for (i=0; i < length; i++) {
        !            41:                if (!isdigit(text[i])) {
        !            42:                        beep=1;
        !            43:                        continue;
        !            44:                }
        !            45:                result[count++] = text[i];
        !            46:        }
        !            47: 
        !            48:        if (count > 0) {
        !            49:                g_signal_handlers_block_by_func (G_OBJECT (editable)
        !            50:                        ,G_CALLBACK (digit_insert_text_handler)
        !            51:                        ,data);
        !            52:                gtk_editable_insert_text (editable, result, count, position);
        !            53:                g_signal_handlers_unblock_by_func (G_OBJECT (editable)
        !            54:                        ,G_CALLBACK (digit_insert_text_handler)
        !            55:                        ,data);
        !            56:        }
        !            57:        if(beep)
        !            58:                BEEP(440,100);
        !            59: 
        !            60:        g_signal_stop_emission_by_name (G_OBJECT (editable), "insert_text");
        !            61: 
        !            62:        g_free (result);
        !            63: }
        !            64: 
        !            65: /* 
        !            66:  * This is one of the two big gruntwork functions
        !            67:  * (the other being save_user)
        !            68:  */
        !            69: void load_user(GtkWidget *wiggy, gpointer data)
        !            70: {
        !            71:        GtkWidget       *w;
        !            72:        char            str[1024];
        !            73:        gboolean        b;
        !            74:        int                     i;
        !            75:        FILE            *f;
        !            76:        GtkTextIter     start;
        !            77:        GtkTextIter     end;
        !            78: 
        !            79:        if(current_user != 0) {
        !            80:                user.number=current_user;
        !            81:                if(user.number < 1 || user.number > totalusers) {
        !            82:                        fprintf(stderr,"Attempted to load illegal user number %d.\n",user.number);
        !            83:                        return;
        !            84:                }
        !            85:                if(getuserdat(&cfg, &user)) {
        !            86:                        fprintf(stderr,"Error loading user %d.\n",current_user);
        !            87:                        return;
        !            88:                }
        !            89:        }
        !            90: 
        !            91:        /* Toolbar indicators */
        !            92:                b=user.misc&DELETED?TRUE:FALSE;
        !            93:                w=glade_xml_get_widget(xml, "bDelete");
        !            94:                if(w==NULL)
        !            95:                        fprintf(stderr,"Cannot get the deleted toolbar widget\n");
        !            96:                else
        !            97:                        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(w),b);
        !            98:                w=glade_xml_get_widget(xml, "delete1");
        !            99:                if(w==NULL)
        !           100:                        fprintf(stderr,"Cannot get the deleted menu widget\n");
        !           101:                else
        !           102:                        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(w),b);
        !           103: 
        !           104:                b=user.misc&INACTIVE?TRUE:FALSE;
        !           105:                w=glade_xml_get_widget(xml, "bRemove");
        !           106:                if(w==NULL)
        !           107:                        fprintf(stderr,"Cannot get the removed toolbar widget\n");
        !           108:                else
        !           109:                        gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(w),b);
        !           110:                w=glade_xml_get_widget(xml, "remove1");
        !           111:                if(w==NULL)
        !           112:                        fprintf(stderr,"Cannot get the remove menu widget\n");
        !           113:                else
        !           114:                        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(w),b);
        !           115:                
        !           116: 
        !           117:        /* Peronal Tab */
        !           118:                /* Alias */
        !           119:                w=glade_xml_get_widget(xml, "eUserAlias");
        !           120:                if(w==NULL)
        !           121:                        fprintf(stderr,"Cannot get the alias widget\n");
        !           122:                else
        !           123:                        gtk_entry_set_text(GTK_ENTRY(w),user.alias);
        !           124: 
        !           125:                /* Real Name */
        !           126:                w=glade_xml_get_widget(xml, "eRealName");
        !           127:                if(w==NULL)
        !           128:                        fprintf(stderr,"Cannot get the real name widget\n");
        !           129:                else
        !           130:                        gtk_entry_set_text(GTK_ENTRY(w),user.name);
        !           131: 
        !           132:                /* Computer */
        !           133:                w=glade_xml_get_widget(xml, "eComputer");
        !           134:                if(w==NULL)
        !           135:                        fprintf(stderr,"Cannot get the computer widget\n");
        !           136:                else
        !           137:                        gtk_entry_set_text(GTK_ENTRY(w),user.comp);
        !           138: 
        !           139:                /* NetMail */
        !           140:                w=glade_xml_get_widget(xml, "eNetMail");
        !           141:                if(w==NULL)
        !           142:                        fprintf(stderr,"Cannot get the netmail widget\n");
        !           143:                else
        !           144:                        gtk_entry_set_text(GTK_ENTRY(w),user.netmail);
        !           145: 
        !           146:                /* Phone */
        !           147:                w=glade_xml_get_widget(xml, "ePhone");
        !           148:                if(w==NULL)
        !           149:                        fprintf(stderr,"Cannot get the phone widget\n");
        !           150:                else
        !           151:                        gtk_entry_set_text(GTK_ENTRY(w),user.phone);
        !           152: 
        !           153:                /* Note */
        !           154:                w=glade_xml_get_widget(xml, "eNote");
        !           155:                if(w==NULL)
        !           156:                        fprintf(stderr,"Cannot get the note widget\n");
        !           157:                else
        !           158:                        gtk_entry_set_text(GTK_ENTRY(w),user.note);
        !           159: 
        !           160:                /* Comment */
        !           161:                w=glade_xml_get_widget(xml, "eComment");
        !           162:                if(w==NULL)
        !           163:                        fprintf(stderr,"Cannot get the comment widget\n");
        !           164:                else
        !           165:                        gtk_entry_set_text(GTK_ENTRY(w),user.comment);
        !           166: 
        !           167:                /* Gender */
        !           168:                w=glade_xml_get_widget(xml, "eGender");
        !           169:                if(w==NULL)
        !           170:                        fprintf(stderr,"Cannot get the gender widget\n");
        !           171:                else {
        !           172:                        str[0]=user.sex;
        !           173:                        str[1]=0;
        !           174:                        gtk_entry_set_text(GTK_ENTRY(w),str);
        !           175:                }
        !           176: 
        !           177:                /* Connection */
        !           178:                w=glade_xml_get_widget(xml, "eConnection");
        !           179:                if(w==NULL)
        !           180:                        fprintf(stderr,"Cannot get the connection widget\n");
        !           181:                else
        !           182:                        gtk_entry_set_text(GTK_ENTRY(w),user.modem);
        !           183: 
        !           184:                /* Chat Handle */
        !           185:                w=glade_xml_get_widget(xml, "eHandle");
        !           186:                if(w==NULL)
        !           187:                        fprintf(stderr,"Cannot get the handle widget\n");
        !           188:                else
        !           189:                        gtk_entry_set_text(GTK_ENTRY(w),user.handle);
        !           190: 
        !           191:                /* Birthdate */
        !           192:                w=glade_xml_get_widget(xml, "eBirthdate");
        !           193:                if(w==NULL)
        !           194:                        fprintf(stderr,"Cannot get the birthdate widget\n");
        !           195:                else
        !           196:                        gtk_entry_set_text(GTK_ENTRY(w),user.birth);
        !           197: 
        !           198:                /* Password */
        !           199:                w=glade_xml_get_widget(xml, "ePassword");
        !           200:                if(w==NULL)
        !           201:                        fprintf(stderr,"Cannot get the password widget\n");
        !           202:                else
        !           203:                        gtk_entry_set_text(GTK_ENTRY(w),user.pass);
        !           204: 
        !           205:                /* Address */
        !           206:                w=glade_xml_get_widget(xml, "eAddress");
        !           207:                if(w==NULL)
        !           208:                        fprintf(stderr,"Cannot get the address widget\n");
        !           209:                else
        !           210:                        gtk_entry_set_text(GTK_ENTRY(w),user.address);
        !           211: 
        !           212:                /* Location */
        !           213:                w=glade_xml_get_widget(xml, "eLocation");
        !           214:                if(w==NULL)
        !           215:                        fprintf(stderr,"Cannot get the location widget\n");
        !           216:                else
        !           217:                        gtk_entry_set_text(GTK_ENTRY(w),user.location);
        !           218: 
        !           219:                /* Postal/ZIP code */
        !           220:                w=glade_xml_get_widget(xml, "eZip");
        !           221:                if(w==NULL)
        !           222:                        fprintf(stderr,"Cannot get the postal/zip code widget\n");
        !           223:                else
        !           224:                        gtk_entry_set_text(GTK_ENTRY(w),user.zipcode);
        !           225: 
        !           226:        /* Security Tab */
        !           227:                /* Level */
        !           228:                w=glade_xml_get_widget(xml, "sLevel");
        !           229:                if(w==NULL)
        !           230:                        fprintf(stderr,"Cannot get the level widget\n");
        !           231:                else
        !           232:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.level);
        !           233: 
        !           234:                /* Expiration */
        !           235:                w=glade_xml_get_widget(xml, "eExpiration");
        !           236:                if(w==NULL)
        !           237:                        fprintf(stderr,"Cannot get the expiration widget\n");
        !           238:                else {
        !           239:                        if(user.expire)
        !           240:                                unixtodstr(&cfg, user.expire, str);
        !           241:                        else
        !           242:                                strcpy(str,"Never");
        !           243:                        gtk_entry_set_text(GTK_ENTRY(w),str);
        !           244:                }
        !           245: 
        !           246:                /* Flag Sets */
        !           247:                strcpy(str,"tFlagSet1.");
        !           248:                for(i=0;i<26;i++) {
        !           249:                        str[9]='A'+i;
        !           250:                        w=glade_xml_get_widget(xml, str);
        !           251:                        if(w==NULL)
        !           252:                                fprintf(stderr,"Cannot get the %s widget\n",str);
        !           253:                        else {
        !           254:                                b = (user.flags1 & (1L << i)) != 0;
        !           255:                                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),b);
        !           256:                        }
        !           257:                }
        !           258: 
        !           259:                strcpy(str,"tFlagSet2.");
        !           260:                for(i=0;i<26;i++) {
        !           261:                        str[9]='A'+i;
        !           262:                        w=glade_xml_get_widget(xml, str);
        !           263:                        if(w==NULL)
        !           264:                                fprintf(stderr,"Cannot get the %s widget\n",str);
        !           265:                        else {
        !           266:                                b = (user.flags2 & (1L << i)) != 0;
        !           267:                                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),b);
        !           268:                        }
        !           269:                }
        !           270: 
        !           271:                strcpy(str,"tFlagSet3.");
        !           272:                for(i=0;i<26;i++) {
        !           273:                        str[9]='A'+i;
        !           274:                        w=glade_xml_get_widget(xml, str);
        !           275:                        if(w==NULL)
        !           276:                                fprintf(stderr,"Cannot get the %s widget\n",str);
        !           277:                        else {
        !           278:                                b = (user.flags3 & (1L << i)) != 0;
        !           279:                                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),b);
        !           280:                        }
        !           281:                }
        !           282: 
        !           283:                strcpy(str,"tFlagSet4.");
        !           284:                for(i=0;i<26;i++) {
        !           285:                        str[9]='A'+i;
        !           286:                        w=glade_xml_get_widget(xml, str);
        !           287:                        if(w==NULL)
        !           288:                                fprintf(stderr,"Cannot get the %s widget\n",str);
        !           289:                        else {
        !           290:                                b = (user.flags4 & (1L << i)) != 0;
        !           291:                                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),b);
        !           292:                        }
        !           293:                }
        !           294: 
        !           295:                /* Exemptions */
        !           296:                strcpy(str,"tExemptions.");
        !           297:                for(i=0;i<26;i++) {
        !           298:                        str[11]='A'+i;
        !           299:                        w=glade_xml_get_widget(xml, str);
        !           300:                        if(w==NULL)
        !           301:                                fprintf(stderr,"Cannot get the %s widget\n",str);
        !           302:                        else {
        !           303:                                b = (user.exempt & (1L << i)) != 0;
        !           304:                                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),b);
        !           305:                        }
        !           306:                }
        !           307: 
        !           308:                /* Restrictions */
        !           309:                strcpy(str,"tRestrictions.");
        !           310:                for(i=0;i<26;i++) {
        !           311:                        str[13]='A'+i;
        !           312:                        w=glade_xml_get_widget(xml, str);
        !           313:                        if(w==NULL)
        !           314:                                fprintf(stderr,"Cannot get the %s widget\n",str);
        !           315:                        else {
        !           316:                                b = (user.rest & (1L << i)) != 0;
        !           317:                                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),b);
        !           318:                        }
        !           319:                }
        !           320: 
        !           321:                /* Credits */
        !           322:                w=glade_xml_get_widget(xml, "sCredits");
        !           323:                if(w==NULL)
        !           324:                        fprintf(stderr,"Cannot get the credits widget\n");
        !           325:                else
        !           326:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.cdt);
        !           327: 
        !           328:                /* Free Credits */
        !           329:                w=glade_xml_get_widget(xml, "sFreeCredits");
        !           330:                if(w==NULL)
        !           331:                        fprintf(stderr,"Cannot get the free credits widget\n");
        !           332:                else
        !           333:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.freecdt);
        !           334: 
        !           335:                /* Minutes */
        !           336:                w=glade_xml_get_widget(xml, "sMinutes");
        !           337:                if(w==NULL)
        !           338:                        fprintf(stderr,"Cannot get the minutes widget\n");
        !           339:                else
        !           340:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.min);
        !           341: 
        !           342:        /* Statistics */
        !           343:                /* First On */
        !           344:                w=glade_xml_get_widget(xml, "eFirstOn");
        !           345:                if(w==NULL)
        !           346:                        fprintf(stderr,"Cannot get the first on widget\n");
        !           347:                else {
        !           348:                        if(user.firston)
        !           349:                                unixtodstr(&cfg, user.firston, str);
        !           350:                        else
        !           351:                                strcpy(str,"Never");
        !           352:                        gtk_entry_set_text(GTK_ENTRY(w),str);
        !           353:                }
        !           354: 
        !           355:                /* Last On */
        !           356:                w=glade_xml_get_widget(xml, "eLastOn");
        !           357:                if(w==NULL)
        !           358:                        fprintf(stderr,"Cannot get the last on widget\n");
        !           359:                else {
        !           360:                        if(user.laston)
        !           361:                                unixtodstr(&cfg, user.laston, str);
        !           362:                        else
        !           363:                                strcpy(str,"Never");
        !           364:                        gtk_entry_set_text(GTK_ENTRY(w),str);
        !           365:                }
        !           366: 
        !           367:                /* Total Logons */
        !           368:                w=glade_xml_get_widget(xml, "sLogonsTotal");
        !           369:                if(w==NULL)
        !           370:                        fprintf(stderr,"Cannot get the total logons widget\n");
        !           371:                else
        !           372:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.logons);
        !           373: 
        !           374:                /* Logons today */
        !           375:                w=glade_xml_get_widget(xml, "sLogonsToday");
        !           376:                if(w==NULL)
        !           377:                        fprintf(stderr,"Cannot get the logons today widget\n");
        !           378:                else
        !           379:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.ltoday);
        !           380: 
        !           381:                /* Total Posts */
        !           382:                w=glade_xml_get_widget(xml, "sTotalPosts");
        !           383:                if(w==NULL)
        !           384:                        fprintf(stderr,"Cannot get the total posts widget\n");
        !           385:                else
        !           386:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.posts);
        !           387: 
        !           388:                /* Posts Today */
        !           389:                w=glade_xml_get_widget(xml, "sPostsToday");
        !           390:                if(w==NULL)
        !           391:                        fprintf(stderr,"Cannot get the posts today widget\n");
        !           392:                else
        !           393:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.ptoday);
        !           394: 
        !           395:                /* Total Uploads */
        !           396:                w=glade_xml_get_widget(xml, "sTotalUploads");
        !           397:                if(w==NULL)
        !           398:                        fprintf(stderr,"Cannot get the total uploads widget\n");
        !           399:                else
        !           400:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.uls);
        !           401: 
        !           402:                /* Upload Bytes */
        !           403:                w=glade_xml_get_widget(xml, "sUploadBytes");
        !           404:                if(w==NULL)
        !           405:                        fprintf(stderr,"Cannot get the upload bytes widget\n");
        !           406:                else
        !           407:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.ulb);
        !           408: 
        !           409:                /* Total Time On */
        !           410:                w=glade_xml_get_widget(xml, "sTotalTimeOn");
        !           411:                if(w==NULL)
        !           412:                        fprintf(stderr,"Cannot get the total time on widget\n");
        !           413:                else
        !           414:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.timeon);
        !           415: 
        !           416:                /* Time On Today */
        !           417:                w=glade_xml_get_widget(xml, "sTimeOnToday");
        !           418:                if(w==NULL)
        !           419:                        fprintf(stderr,"Cannot get the time on today widget\n");
        !           420:                else
        !           421:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.ttoday);
        !           422: 
        !           423:                /* Time On Last Call */
        !           424:                w=glade_xml_get_widget(xml, "sTimeOnLastCall");
        !           425:                if(w==NULL)
        !           426:                        fprintf(stderr,"Cannot get the last call time on widget\n");
        !           427:                else
        !           428:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.tlast);
        !           429: 
        !           430:                /* Time On Extra */
        !           431:                w=glade_xml_get_widget(xml, "sTimeOnExtra");
        !           432:                if(w==NULL)
        !           433:                        fprintf(stderr,"Cannot get the extra time on widget\n");
        !           434:                else
        !           435:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.textra);
        !           436: 
        !           437:                /* Total Downloads */
        !           438:                w=glade_xml_get_widget(xml, "sDownloadsTotal");
        !           439:                if(w==NULL)
        !           440:                        fprintf(stderr,"Cannot get the total downloads widget\n");
        !           441:                else
        !           442:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.dls);
        !           443: 
        !           444:                /* Download Bytes */
        !           445:                w=glade_xml_get_widget(xml, "sDownloadsBytes");
        !           446:                if(w==NULL)
        !           447:                        fprintf(stderr,"Cannot get the download bytes widget\n");
        !           448:                else
        !           449:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.dlb);
        !           450: 
        !           451:                /* Download Leeches */
        !           452:                w=glade_xml_get_widget(xml, "sDownloadsLeech");
        !           453:                if(w==NULL)
        !           454:                        fprintf(stderr,"Cannot get the downloads leech widget\n");
        !           455:                else
        !           456:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.leech);
        !           457: 
        !           458:                /* Total Email */
        !           459:                w=glade_xml_get_widget(xml, "sEmailTotal");
        !           460:                if(w==NULL)
        !           461:                        fprintf(stderr,"Cannot get the total email widget\n");
        !           462:                else
        !           463:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.emails);
        !           464: 
        !           465:                /* Email Today */
        !           466:                w=glade_xml_get_widget(xml, "sEmailToday");
        !           467:                if(w==NULL)
        !           468:                        fprintf(stderr,"Cannot get the email today widget\n");
        !           469:                else
        !           470:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.etoday);
        !           471: 
        !           472:                /* Email To Sysop */
        !           473:                w=glade_xml_get_widget(xml, "sEmailToSysop");
        !           474:                if(w==NULL)
        !           475:                        fprintf(stderr,"Cannot get the email to sysop widget\n");
        !           476:                else
        !           477:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.fbacks);
        !           478: 
        !           479:        /* Settings */
        !           480:                w=glade_xml_get_widget(xml, "cUserAUTOTERM");
        !           481:                if(w==NULL)
        !           482:                        fprintf(stderr,"Cannot get the autoterm widget\n");
        !           483:                else
        !           484:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&AUTOTERM);
        !           485: 
        !           486:                w=glade_xml_get_widget(xml, "cUserNO_EXASCII");
        !           487:                if(w==NULL)
        !           488:                        fprintf(stderr,"Cannot get the no exascii widget\n");
        !           489:                else
        !           490:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&NO_EXASCII);
        !           491: 
        !           492:                w=glade_xml_get_widget(xml, "cUserANSI");
        !           493:                if(w==NULL)
        !           494:                        fprintf(stderr,"Cannot get the ansi widget\n");
        !           495:                else
        !           496:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&ANSI);
        !           497: 
        !           498:                w=glade_xml_get_widget(xml, "cUserCOLOR");
        !           499:                if(w==NULL)
        !           500:                        fprintf(stderr,"Cannot get the color widget\n");
        !           501:                else
        !           502:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&COLOR);
        !           503: 
        !           504:                w=glade_xml_get_widget(xml, "cUserRIP");
        !           505:                if(w==NULL)
        !           506:                        fprintf(stderr,"Cannot get the RIP widget\n");
        !           507:                else
        !           508:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&RIP);
        !           509: 
        !           510:                w=glade_xml_get_widget(xml, "cUserWIP");
        !           511:                if(w==NULL)
        !           512:                        fprintf(stderr,"Cannot get the WIP widget\n");
        !           513:                else
        !           514:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&WIP);
        !           515: 
        !           516:                w=glade_xml_get_widget(xml, "cUserUPAUSE");
        !           517:                if(w==NULL)
        !           518:                        fprintf(stderr,"Cannot get the upause widget\n");
        !           519:                else
        !           520:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&UPAUSE);
        !           521: 
        !           522:                w=glade_xml_get_widget(xml, "cUserCOLDKEYS");
        !           523:                if(w==NULL)
        !           524:                        fprintf(stderr,"Cannot get the coldkeys widget\n");
        !           525:                else
        !           526:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&COLDKEYS);
        !           527: 
        !           528:                w=glade_xml_get_widget(xml, "cUserSPIN");
        !           529:                if(w==NULL)
        !           530:                        fprintf(stderr,"Cannot get the spin widget\n");
        !           531:                else
        !           532:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&SPIN);
        !           533: 
        !           534:                w=glade_xml_get_widget(xml, "cUserRIP");
        !           535:                if(w==NULL)
        !           536:                        fprintf(stderr,"Cannot get the RIP widget\n");
        !           537:                else
        !           538:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&RIP);
        !           539: 
        !           540:                w=glade_xml_get_widget(xml, "sRows");
        !           541:                if(w==NULL)
        !           542:                        fprintf(stderr,"Cannot get the rows widget\n");
        !           543:                else
        !           544:                        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),user.rows);
        !           545: 
        !           546:                w=glade_xml_get_widget(xml, "cCommandShell");
        !           547:                if(w==NULL)
        !           548:                        fprintf(stderr,"Cannot get the command shell widget\n");
        !           549:                else
        !           550:                        gtk_combo_box_set_active(GTK_COMBO_BOX(w),user.shell);
        !           551: 
        !           552:                w=glade_xml_get_widget(xml, "cUserEXPERT");
        !           553:                if(w==NULL)
        !           554:                        fprintf(stderr,"Cannot get the expert widget\n");
        !           555:                else
        !           556:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&EXPERT);
        !           557: 
        !           558:                w=glade_xml_get_widget(xml, "cUserASK_NSCAN");
        !           559:                if(w==NULL)
        !           560:                        fprintf(stderr,"Cannot get the ask new scan widget\n");
        !           561:                else
        !           562:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&ASK_NSCAN);
        !           563: 
        !           564:                w=glade_xml_get_widget(xml, "cUserASK_SSCAN");
        !           565:                if(w==NULL)
        !           566:                        fprintf(stderr,"Cannot get the ask to you scan widget\n");
        !           567:                else
        !           568:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&ASK_SSCAN);
        !           569: 
        !           570:                w=glade_xml_get_widget(xml, "cUserCURSUB");
        !           571:                if(w==NULL)
        !           572:                        fprintf(stderr,"Cannot get the save current sub widget\n");
        !           573:                else
        !           574:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&CURSUB);
        !           575: 
        !           576:                w=glade_xml_get_widget(xml, "cUserQUIET");
        !           577:                if(w==NULL)
        !           578:                        fprintf(stderr,"Cannot get the quiet mode widget\n");
        !           579:                else
        !           580:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&QUIET);
        !           581: 
        !           582:                w=glade_xml_get_widget(xml, "cUserAUTOLOGON");
        !           583:                if(w==NULL)
        !           584:                        fprintf(stderr,"Cannot get the auto logon widget\n");
        !           585:                else
        !           586:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&AUTOLOGON);
        !           587: 
        !           588:                w=glade_xml_get_widget(xml, "cUserEXPERT");
        !           589:                if(w==NULL)
        !           590:                        fprintf(stderr,"Cannot get the expert widget\n");
        !           591:                else
        !           592:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&EXPERT);
        !           593: 
        !           594:                w=glade_xml_get_widget(xml, "cUserCHAT_ECHO");
        !           595:                if(w==NULL)
        !           596:                        fprintf(stderr,"Cannot get the chat echo widget\n");
        !           597:                else
        !           598:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.chat&CHAT_ECHO);
        !           599: 
        !           600:                w=glade_xml_get_widget(xml, "cUserCHAT_ACTION");
        !           601:                if(w==NULL)
        !           602:                        fprintf(stderr,"Cannot get the chat action widget\n");
        !           603:                else
        !           604:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.chat&CHAT_ACTION);
        !           605: 
        !           606:                w=glade_xml_get_widget(xml, "cUserCHAT_NOPAGE");
        !           607:                if(w==NULL)
        !           608:                        fprintf(stderr,"Cannot get the chat nopage widget\n");
        !           609:                else
        !           610:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.chat&CHAT_NOPAGE);
        !           611: 
        !           612:                w=glade_xml_get_widget(xml, "cUserCHAT_NOACT");
        !           613:                if(w==NULL)
        !           614:                        fprintf(stderr,"Cannot get the chat no activity widget\n");
        !           615:                else
        !           616:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.chat&CHAT_NOACT);
        !           617: 
        !           618:                w=glade_xml_get_widget(xml, "cUserCHAT_SPLITP");
        !           619:                if(w==NULL)
        !           620:                        fprintf(stderr,"Cannot get the chat split personal widget\n");
        !           621:                else
        !           622:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.chat&CHAT_SPLITP);
        !           623: 
        !           624:        /* Msg/File Settings */
        !           625: 
        !           626:                w=glade_xml_get_widget(xml, "cUserNETMAIL");
        !           627:                if(w==NULL)
        !           628:                        fprintf(stderr,"Cannot get the netmail widget\n");
        !           629:                else
        !           630:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&NETMAIL);
        !           631: 
        !           632:                w=glade_xml_get_widget(xml, "cUserCLRSCRN");
        !           633:                if(w==NULL)
        !           634:                        fprintf(stderr,"Cannot get the clear screen widget\n");
        !           635:                else
        !           636:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&CLRSCRN);
        !           637: 
        !           638:                w=glade_xml_get_widget(xml, "cUserANFSCAN");
        !           639:                if(w==NULL)
        !           640:                        fprintf(stderr,"Cannot get the ask new file scan widget\n");
        !           641:                else
        !           642:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&ANFSCAN);
        !           643: 
        !           644:                w=glade_xml_get_widget(xml, "cUserEXTDESC");
        !           645:                if(w==NULL)
        !           646:                        fprintf(stderr,"Cannot get the extended descriptions widget\n");
        !           647:                else
        !           648:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&EXTDESC);
        !           649: 
        !           650:                w=glade_xml_get_widget(xml, "cUserBATCHFLAG");
        !           651:                if(w==NULL)
        !           652:                        fprintf(stderr,"Cannot get the batch flagging widget\n");
        !           653:                else
        !           654:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&BATCHFLAG);
        !           655: 
        !           656:                w=glade_xml_get_widget(xml, "cUserAUTOHANG");
        !           657:                if(w==NULL)
        !           658:                        fprintf(stderr,"Cannot get the auto hangup after transfer widget\n");
        !           659:                else
        !           660:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&AUTOHANG);
        !           661: 
        !           662:                w=glade_xml_get_widget(xml, "cUserCLRSCRN");
        !           663:                if(w==NULL)
        !           664:                        fprintf(stderr,"Cannot get the clear screen widget\n");
        !           665:                else
        !           666:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.misc&CLRSCRN);
        !           667: 
        !           668:                w=glade_xml_get_widget(xml, "cExternalEditor");
        !           669:                if(w==NULL)
        !           670:                        fprintf(stderr,"Cannot get the external editor widget\n");
        !           671:                else
        !           672:                        gtk_combo_box_set_active(GTK_COMBO_BOX(w),user.xedit);
        !           673: 
        !           674:                w=glade_xml_get_widget(xml, "cDefaultDownloadProtocol");
        !           675:                if(w==NULL)
        !           676:                        fprintf(stderr,"Cannot get the default download protocol widget\n");
        !           677:                else {
        !           678:                        gtk_combo_box_set_active(GTK_COMBO_BOX(w),0);
        !           679:                        for(i=0;i<cfg.total_prots;i++) {
        !           680:                                if(cfg.prot[i]->mnemonic==user.prot) {
        !           681:                                        gtk_combo_box_set_active(GTK_COMBO_BOX(w),i+1);
        !           682:                                        break;
        !           683:                                }
        !           684:                        }
        !           685:                }
        !           686: 
        !           687:                w=glade_xml_get_widget(xml, "cTempQWKFileType");
        !           688:                if(w==NULL)
        !           689:                        fprintf(stderr,"Cannot get the temp QWK file type widget\n");
        !           690:                else {
        !           691:                        gtk_combo_box_set_active(GTK_COMBO_BOX(w),-1);
        !           692:                        for(i=0;i<cfg.total_fcomps;i++) {
        !           693:                                if(!stricmp(cfg.fcomp[i]->ext,user.tmpext)) {
        !           694:                                        gtk_combo_box_set_active(GTK_COMBO_BOX(w),i);
        !           695:                                        break;
        !           696:                                }
        !           697:                        }
        !           698:                }
        !           699: 
        !           700:                w=glade_xml_get_widget(xml, "cUserQWK_FILES");
        !           701:                if(w==NULL)
        !           702:                        fprintf(stderr,"Cannot get the include new files list widget\n");
        !           703:                else
        !           704:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_FILES);
        !           705: 
        !           706:                w=glade_xml_get_widget(xml, "cUserQWK_EMAIL");
        !           707:                if(w==NULL)
        !           708:                        fprintf(stderr,"Cannot get the include unread email widget\n");
        !           709:                else
        !           710:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_EMAIL);
        !           711: 
        !           712:                w=glade_xml_get_widget(xml, "cUserQWK_ALLMAIL");
        !           713:                if(w==NULL)
        !           714:                        fprintf(stderr,"Cannot get the include all email widget\n");
        !           715:                else
        !           716:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_ALLMAIL);
        !           717: 
        !           718:                w=glade_xml_get_widget(xml, "cUserQWK_DELMAIL");
        !           719:                if(w==NULL)
        !           720:                        fprintf(stderr,"Cannot get the delete email widget\n");
        !           721:                else
        !           722:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_DELMAIL);
        !           723: 
        !           724:                w=glade_xml_get_widget(xml, "cUserQWK_BYSELF");
        !           725:                if(w==NULL)
        !           726:                        fprintf(stderr,"Cannot get the include messages by self widget\n");
        !           727:                else
        !           728:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_BYSELF);
        !           729: 
        !           730:                w=glade_xml_get_widget(xml, "cUserQWK_EXPCTLA");
        !           731:                if(w==NULL)
        !           732:                        fprintf(stderr,"Cannot get the expand ctrl-a widget\n");
        !           733:                else
        !           734:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_EXPCTLA);
        !           735: 
        !           736:                w=glade_xml_get_widget(xml, "cUserQWK_RETCTLA");
        !           737:                if(w==NULL)
        !           738:                        fprintf(stderr,"Cannot get the retain ctrl-a widget\n");
        !           739:                else
        !           740:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_RETCTLA);
        !           741: 
        !           742:                w=glade_xml_get_widget(xml, "cUserQWK_ATTACH");
        !           743:                if(w==NULL)
        !           744:                        fprintf(stderr,"Cannot get the include attachments widget\n");
        !           745:                else
        !           746:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_ATTACH);
        !           747: 
        !           748:                w=glade_xml_get_widget(xml, "cUserQWK_NOINDEX");
        !           749:                if(w==NULL)
        !           750:                        fprintf(stderr,"Cannot get the don't include index files widget\n");
        !           751:                else
        !           752:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_NOINDEX);
        !           753: 
        !           754:                w=glade_xml_get_widget(xml, "cUserQWK_TZ");
        !           755:                if(w==NULL)
        !           756:                        fprintf(stderr,"Cannot get the include TZ widget\n");
        !           757:                else
        !           758:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_TZ);
        !           759: 
        !           760:                w=glade_xml_get_widget(xml, "cUserQWK_VIA");
        !           761:                if(w==NULL)
        !           762:                        fprintf(stderr,"Cannot get the include VIA widget\n");
        !           763:                else
        !           764:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_VIA);
        !           765: 
        !           766:                w=glade_xml_get_widget(xml, "cUserQWK_NOCTRL");
        !           767:                if(w==NULL)
        !           768:                        fprintf(stderr,"Cannot get the include extraneous control files widget\n");
        !           769:                else
        !           770:                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),user.qwk&QWK_NOCTRL);
        !           771: 
        !           772:        /* Extended Comment */
        !           773:                w=glade_xml_get_widget(xml, "tExtendedComment");
        !           774: 
        !           775:                gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(w)), &start);
        !           776:                gtk_text_buffer_get_end_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(w)), &end);
        !           777:                gtk_text_buffer_delete(gtk_text_view_get_buffer(GTK_TEXT_VIEW(w)), &start, &end);
        !           778: 
        !           779:                sprintf(str,"%suser/%4.4u.msg", cfg.data_dir,user.number);
        !           780:                f=fopen(str,"r");
        !           781:                if(f) {
        !           782:                        while((i=fread(str,1,sizeof(str),f)))
        !           783:                                gtk_text_buffer_insert_at_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(w)), str,i);
        !           784:                        fclose(f);
        !           785:                }
        !           786: 
        !           787:        /*
        !           788:         * Set the save buttons as inactive to indicate that no changes were made
        !           789:         */
        !           790:        w=glade_xml_get_widget(xml, "bSaveUser");
        !           791:        if(w==NULL)
        !           792:                fprintf(stderr,"Cannot get the save user button widget\n");
        !           793:        else
        !           794:                gtk_widget_set_sensitive(GTK_WIDGET(w),FALSE);
        !           795:        w=glade_xml_get_widget(xml, "save1");
        !           796:        if(w==NULL)
        !           797:                fprintf(stderr,"Cannot get the save user menu widget\n");
        !           798:        else
        !           799:                gtk_widget_set_sensitive(GTK_WIDGET(w),FALSE);
        !           800: }
        !           801: 
        !           802: void save_user(GtkWidget *wiggy, gpointer data)
        !           803: {
        !           804:        GtkWidget       *w;
        !           805:        char            str[1024];
        !           806:        gboolean        b;
        !           807:        int                     i;
        !           808:        FILE            *f;
        !           809:        GtkTextIter     start;
        !           810:        GtkTextIter     end;
        !           811: 
        !           812:        /* Toolbar indicators */
        !           813:                b=user.misc&DELETED?TRUE:FALSE;
        !           814:                w=glade_xml_get_widget(xml, "bDelete");
        !           815:                if(w==NULL)
        !           816:                        fprintf(stderr,"Cannot get the deleted toolbar widget\n");
        !           817:                else {
        !           818:                        switch(gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(w))) {
        !           819:                                case 0:
        !           820:                                        user.misc &= ~DELETED;
        !           821:                                        break;
        !           822:                                default:
        !           823:                                        user.misc |= DELETED;
        !           824:                        }
        !           825:                }
        !           826: 
        !           827:                b=user.misc&INACTIVE?TRUE:FALSE;
        !           828:                w=glade_xml_get_widget(xml, "bRemove");
        !           829:                if(w==NULL)
        !           830:                        fprintf(stderr,"Cannot get the removed toolbar widget\n");
        !           831:                else {
        !           832:                        switch(gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(w))) {
        !           833:                                case 0:
        !           834:                                        user.misc &= ~INACTIVE;
        !           835:                                        break;
        !           836:                                default:
        !           837:                                        user.misc |= INACTIVE;
        !           838:                        }
        !           839:                }
        !           840:                
        !           841: 
        !           842:        /* Peronal Tab */
        !           843:                /* Alias */
        !           844:                w=glade_xml_get_widget(xml, "eUserAlias");
        !           845:                if(w==NULL)
        !           846:                        fprintf(stderr,"Cannot get the alias widget\n");
        !           847:                else {
        !           848:                        strcpy(user.alias, gtk_entry_get_text(GTK_ENTRY(w)));
        !           849:                        if(user.number) {
        !           850:                                if(user.misc & DELETED)
        !           851:                                        putusername(&cfg, user.number, "");
        !           852:                                else
        !           853:                                        putusername(&cfg, user.number, user.alias);
        !           854:                        }
        !           855:                }
        !           856: 
        !           857:                /* Real Name */
        !           858:                w=glade_xml_get_widget(xml, "eRealName");
        !           859:                if(w==NULL)
        !           860:                        fprintf(stderr,"Cannot get the real name widget\n");
        !           861:                else
        !           862:                        strcpy(user.name, gtk_entry_get_text(GTK_ENTRY(w)));
        !           863: 
        !           864:                /* Computer */
        !           865:                w=glade_xml_get_widget(xml, "eComputer");
        !           866:                if(w==NULL)
        !           867:                        fprintf(stderr,"Cannot get the computer widget\n");
        !           868:                else
        !           869:                        strcpy(user.comp, gtk_entry_get_text(GTK_ENTRY(w)));
        !           870: 
        !           871:                /* NetMail */
        !           872:                w=glade_xml_get_widget(xml, "eNetMail");
        !           873:                if(w==NULL)
        !           874:                        fprintf(stderr,"Cannot get the netmail widget\n");
        !           875:                else
        !           876:                        strcpy(user.netmail, gtk_entry_get_text(GTK_ENTRY(w)));
        !           877: 
        !           878:                /* Phone */
        !           879:                w=glade_xml_get_widget(xml, "ePhone");
        !           880:                if(w==NULL)
        !           881:                        fprintf(stderr,"Cannot get the phone widget\n");
        !           882:                else
        !           883:                        strcpy(user.phone,gtk_entry_get_text(GTK_ENTRY(w)));
        !           884: 
        !           885:                /* Note */
        !           886:                w=glade_xml_get_widget(xml, "eNote");
        !           887:                if(w==NULL)
        !           888:                        fprintf(stderr,"Cannot get the note widget\n");
        !           889:                else
        !           890:                        strcpy(user.note, gtk_entry_get_text(GTK_ENTRY(w)));
        !           891: 
        !           892:                /* Comment */
        !           893:                w=glade_xml_get_widget(xml, "eComment");
        !           894:                if(w==NULL)
        !           895:                        fprintf(stderr,"Cannot get the comment widget\n");
        !           896:                else
        !           897:                        strcpy(user.comment, gtk_entry_get_text(GTK_ENTRY(w)));
        !           898: 
        !           899:                /* Gender */
        !           900:                w=glade_xml_get_widget(xml, "eGender");
        !           901:                if(w==NULL)
        !           902:                        fprintf(stderr,"Cannot get the gender widget\n");
        !           903:                else
        !           904:                        user.sex=*(gtk_entry_get_text(GTK_ENTRY(w)));
        !           905: 
        !           906:                /* Connection */
        !           907:                w=glade_xml_get_widget(xml, "eConnection");
        !           908:                if(w==NULL)
        !           909:                        fprintf(stderr,"Cannot get the connection widget\n");
        !           910:                else
        !           911:                        strcpy(user.modem, gtk_entry_get_text(GTK_ENTRY(w)));
        !           912: 
        !           913:                /* Chat Handle */
        !           914:                w=glade_xml_get_widget(xml, "eHandle");
        !           915:                if(w==NULL)
        !           916:                        fprintf(stderr,"Cannot get the handle widget\n");
        !           917:                else
        !           918:                        strcpy(user.handle, gtk_entry_get_text(GTK_ENTRY(w)));
        !           919: 
        !           920:                /* Birthdate - Already done */
        !           921: 
        !           922:                /* Password */
        !           923:                w=glade_xml_get_widget(xml, "ePassword");
        !           924:                if(w==NULL)
        !           925:                        fprintf(stderr,"Cannot get the password widget\n");
        !           926:                else
        !           927:                        strcpy(user.pass, gtk_entry_get_text(GTK_ENTRY(w)));
        !           928: 
        !           929:                /* Address */
        !           930:                w=glade_xml_get_widget(xml, "eAddress");
        !           931:                if(w==NULL)
        !           932:                        fprintf(stderr,"Cannot get the address widget\n");
        !           933:                else
        !           934:                        strcpy(user.address, gtk_entry_get_text(GTK_ENTRY(w)));
        !           935: 
        !           936:                /* Location */
        !           937:                w=glade_xml_get_widget(xml, "eLocation");
        !           938:                if(w==NULL)
        !           939:                        fprintf(stderr,"Cannot get the location widget\n");
        !           940:                else
        !           941:                        strcpy(user.location, gtk_entry_get_text(GTK_ENTRY(w)));
        !           942: 
        !           943:                /* Postal/ZIP code */
        !           944:                w=glade_xml_get_widget(xml, "eZip");
        !           945:                if(w==NULL)
        !           946:                        fprintf(stderr,"Cannot get the postal/zip code widget\n");
        !           947:                else
        !           948:                        strcpy(user.zipcode, gtk_entry_get_text(GTK_ENTRY(w)));
        !           949: 
        !           950:        /* Security Tab */
        !           951:                /* Level */
        !           952:                w=glade_xml_get_widget(xml, "sLevel");
        !           953:                if(w==NULL)
        !           954:                        fprintf(stderr,"Cannot get the level widget\n");
        !           955:                else
        !           956:                        user.level = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !           957: 
        !           958:                /* Expiration - Already done */
        !           959: 
        !           960:                /* Flag Sets */
        !           961:                strcpy(str,"tFlagSet1.");
        !           962:                for(i=0;i<26;i++) {
        !           963:                        str[9]='A'+i;
        !           964:                        w=glade_xml_get_widget(xml, str);
        !           965:                        if(w==NULL)
        !           966:                                fprintf(stderr,"Cannot get the %s widget\n",str);
        !           967:                        else {
        !           968:                                switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !           969:                                        case 0:
        !           970:                                                user.flags1 &= ~(1L<<i);
        !           971:                                                break;
        !           972:                                        default:
        !           973:                                                user.flags1 |= (1L<<i);
        !           974:                                }
        !           975:                        }
        !           976:                }
        !           977: 
        !           978:                strcpy(str,"tFlagSet2.");
        !           979:                for(i=0;i<26;i++) {
        !           980:                        str[9]='A'+i;
        !           981:                        w=glade_xml_get_widget(xml, str);
        !           982:                        if(w==NULL)
        !           983:                                fprintf(stderr,"Cannot get the %s widget\n",str);
        !           984:                        else {
        !           985:                                switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !           986:                                        case 0:
        !           987:                                                user.flags2 &= ~(1L<<i);
        !           988:                                                break;
        !           989:                                        default:
        !           990:                                                user.flags2 |= (1L<<i);
        !           991:                                }
        !           992:                        }
        !           993:                }
        !           994: 
        !           995:                strcpy(str,"tFlagSet3.");
        !           996:                for(i=0;i<26;i++) {
        !           997:                        str[9]='A'+i;
        !           998:                        w=glade_xml_get_widget(xml, str);
        !           999:                        if(w==NULL)
        !          1000:                                fprintf(stderr,"Cannot get the %s widget\n",str);
        !          1001:                        else {
        !          1002:                                switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1003:                                        case 0:
        !          1004:                                                user.flags3 &= ~(1L<<i);
        !          1005:                                                break;
        !          1006:                                        default:
        !          1007:                                                user.flags3 |= (1L<<i);
        !          1008:                                }
        !          1009:                        }
        !          1010:                }
        !          1011: 
        !          1012:                strcpy(str,"tFlagSet4.");
        !          1013:                for(i=0;i<26;i++) {
        !          1014:                        str[9]='A'+i;
        !          1015:                        w=glade_xml_get_widget(xml, str);
        !          1016:                        if(w==NULL)
        !          1017:                                fprintf(stderr,"Cannot get the %s widget\n",str);
        !          1018:                        else {
        !          1019:                                switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1020:                                        case 0:
        !          1021:                                                user.flags4 &= ~(1L<<i);
        !          1022:                                                break;
        !          1023:                                        default:
        !          1024:                                                user.flags4 |= (1L<<i);
        !          1025:                                }
        !          1026:                        }
        !          1027:                }
        !          1028: 
        !          1029:                /* Exemptions */
        !          1030:                strcpy(str,"tExemptions.");
        !          1031:                for(i=0;i<26;i++) {
        !          1032:                        str[11]='A'+i;
        !          1033:                        w=glade_xml_get_widget(xml, str);
        !          1034:                        if(w==NULL)
        !          1035:                                fprintf(stderr,"Cannot get the %s widget\n",str);
        !          1036:                        else {
        !          1037:                                switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1038:                                        case 0:
        !          1039:                                                user.exempt &= ~(1L<<i);
        !          1040:                                                break;
        !          1041:                                        default:
        !          1042:                                                user.exempt |= (1L<<i);
        !          1043:                                }
        !          1044:                        }
        !          1045:                }
        !          1046: 
        !          1047:                /* Restrictions */
        !          1048:                strcpy(str,"tRestrictions.");
        !          1049:                for(i=0;i<26;i++) {
        !          1050:                        str[13]='A'+i;
        !          1051:                        w=glade_xml_get_widget(xml, str);
        !          1052:                        if(w==NULL)
        !          1053:                                fprintf(stderr,"Cannot get the %s widget\n",str);
        !          1054:                        else {
        !          1055:                                switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1056:                                        case 0:
        !          1057:                                                user.rest &= ~(1L<<i);
        !          1058:                                                break;
        !          1059:                                        default:
        !          1060:                                                user.rest |= (1L<<i);
        !          1061:                                }
        !          1062:                        }
        !          1063:                }
        !          1064: 
        !          1065:                /* Credits */
        !          1066:                w=glade_xml_get_widget(xml, "sCredits");
        !          1067:                if(w==NULL)
        !          1068:                        fprintf(stderr,"Cannot get the credits widget\n");
        !          1069:                else
        !          1070:                        user.cdt = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1071: 
        !          1072:                /* Free Credits */
        !          1073:                w=glade_xml_get_widget(xml, "sFreeCredits");
        !          1074:                if(w==NULL)
        !          1075:                        fprintf(stderr,"Cannot get the free credits widget\n");
        !          1076:                else
        !          1077:                        user.freecdt = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1078: 
        !          1079:                /* Minutes */
        !          1080:                w=glade_xml_get_widget(xml, "sMinutes");
        !          1081:                if(w==NULL)
        !          1082:                        fprintf(stderr,"Cannot get the minutes widget\n");
        !          1083:                else
        !          1084:                        user.min = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1085: 
        !          1086:        /* Statistics */
        !          1087:                /* First On - Already done */
        !          1088: 
        !          1089:                /* Last On - Already done */
        !          1090: 
        !          1091:                /* Total Logons */
        !          1092:                w=glade_xml_get_widget(xml, "sLogonsTotal");
        !          1093:                if(w==NULL)
        !          1094:                        fprintf(stderr,"Cannot get the total logons widget\n");
        !          1095:                else
        !          1096:                        user.logons = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1097: 
        !          1098:                /* Logons today */
        !          1099:                w=glade_xml_get_widget(xml, "sLogonsToday");
        !          1100:                if(w==NULL)
        !          1101:                        fprintf(stderr,"Cannot get the logons today widget\n");
        !          1102:                else
        !          1103:                        user.ltoday = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1104: 
        !          1105:                /* Total Posts */
        !          1106:                w=glade_xml_get_widget(xml, "sTotalPosts");
        !          1107:                if(w==NULL)
        !          1108:                        fprintf(stderr,"Cannot get the total posts widget\n");
        !          1109:                else
        !          1110:                        user.posts = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1111: 
        !          1112:                /* Posts Today */
        !          1113:                w=glade_xml_get_widget(xml, "sPostsToday");
        !          1114:                if(w==NULL)
        !          1115:                        fprintf(stderr,"Cannot get the posts today widget\n");
        !          1116:                else
        !          1117:                        user.ptoday = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1118: 
        !          1119:                /* Total Uploads */
        !          1120:                w=glade_xml_get_widget(xml, "sTotalUploads");
        !          1121:                if(w==NULL)
        !          1122:                        fprintf(stderr,"Cannot get the total uploads widget\n");
        !          1123:                else
        !          1124:                        user.uls = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1125: 
        !          1126:                /* Upload Bytes */
        !          1127:                w=glade_xml_get_widget(xml, "sUploadBytes");
        !          1128:                if(w==NULL)
        !          1129:                        fprintf(stderr,"Cannot get the upload bytes widget\n");
        !          1130:                else
        !          1131:                        user.ulb = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1132: 
        !          1133:                /* Total Time On */
        !          1134:                w=glade_xml_get_widget(xml, "sTotalTimeOn");
        !          1135:                if(w==NULL)
        !          1136:                        fprintf(stderr,"Cannot get the total time on widget\n");
        !          1137:                else
        !          1138:                        user.timeon = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1139: 
        !          1140:                /* Time On Today */
        !          1141:                w=glade_xml_get_widget(xml, "sTimeOnToday");
        !          1142:                if(w==NULL)
        !          1143:                        fprintf(stderr,"Cannot get the time on today widget\n");
        !          1144:                else
        !          1145:                        user.ttoday = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1146: 
        !          1147:                /* Time On Last Call */
        !          1148:                w=glade_xml_get_widget(xml, "sTimeOnLastCall");
        !          1149:                if(w==NULL)
        !          1150:                        fprintf(stderr,"Cannot get the last call time on widget\n");
        !          1151:                else
        !          1152:                        user.tlast = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1153: 
        !          1154:                /* Time On Extra */
        !          1155:                w=glade_xml_get_widget(xml, "sTimeOnExtra");
        !          1156:                if(w==NULL)
        !          1157:                        fprintf(stderr,"Cannot get the extra time on widget\n");
        !          1158:                else
        !          1159:                        user.textra = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1160: 
        !          1161:                /* Total Downloads */
        !          1162:                w=glade_xml_get_widget(xml, "sDownloadsTotal");
        !          1163:                if(w==NULL)
        !          1164:                        fprintf(stderr,"Cannot get the total downloads widget\n");
        !          1165:                else
        !          1166:                        user.dls = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1167: 
        !          1168:                /* Download Bytes */
        !          1169:                w=glade_xml_get_widget(xml, "sDownloadsBytes");
        !          1170:                if(w==NULL)
        !          1171:                        fprintf(stderr,"Cannot get the download bytes widget\n");
        !          1172:                else
        !          1173:                        user.dlb = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1174: 
        !          1175:                /* Download Leeches */
        !          1176:                w=glade_xml_get_widget(xml, "sDownloadsLeech");
        !          1177:                if(w==NULL)
        !          1178:                        fprintf(stderr,"Cannot get the downloads leech widget\n");
        !          1179:                else
        !          1180:                        user.leech = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1181: 
        !          1182:                /* Total Email */
        !          1183:                w=glade_xml_get_widget(xml, "sEmailTotal");
        !          1184:                if(w==NULL)
        !          1185:                        fprintf(stderr,"Cannot get the total email widget\n");
        !          1186:                else
        !          1187:                        user.emails = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1188: 
        !          1189:                /* Email Today */
        !          1190:                w=glade_xml_get_widget(xml, "sEmailToday");
        !          1191:                if(w==NULL)
        !          1192:                        fprintf(stderr,"Cannot get the email today widget\n");
        !          1193:                else
        !          1194:                        user.etoday = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1195: 
        !          1196:                /* Email To Sysop */
        !          1197:                w=glade_xml_get_widget(xml, "sEmailToSysop");
        !          1198:                if(w==NULL)
        !          1199:                        fprintf(stderr,"Cannot get the email to sysop widget\n");
        !          1200:                else
        !          1201:                        user.fbacks = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1202: 
        !          1203:        /* Settings */
        !          1204:                w=glade_xml_get_widget(xml, "cUserAUTOTERM");
        !          1205:                if(w==NULL)
        !          1206:                        fprintf(stderr,"Cannot get the autoterm widget\n");
        !          1207:                else {
        !          1208:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1209:                                case 0:
        !          1210:                                        user.misc&=~AUTOTERM;
        !          1211:                                        break;
        !          1212:                                default:
        !          1213:                                        user.misc|=AUTOTERM;
        !          1214:                        }
        !          1215:                }
        !          1216: 
        !          1217:                w=glade_xml_get_widget(xml, "cUserNO_EXASCII");
        !          1218:                if(w==NULL)
        !          1219:                        fprintf(stderr,"Cannot get the no exascii widget\n");
        !          1220:                else {
        !          1221:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1222:                                case 0:
        !          1223:                                        user.misc&=~NO_EXASCII;
        !          1224:                                        break;
        !          1225:                                default:
        !          1226:                                        user.misc|=NO_EXASCII;
        !          1227:                        }
        !          1228:                }
        !          1229: 
        !          1230:                w=glade_xml_get_widget(xml, "cUserANSI");
        !          1231:                if(w==NULL)
        !          1232:                        fprintf(stderr,"Cannot get the ansi widget\n");
        !          1233:                else {
        !          1234:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1235:                                case 0:
        !          1236:                                        user.misc&=~ANSI;
        !          1237:                                        break;
        !          1238:                                default:
        !          1239:                                        user.misc|=ANSI;
        !          1240:                        }
        !          1241:                }
        !          1242:                                
        !          1243: 
        !          1244:                w=glade_xml_get_widget(xml, "cUserCOLOR");
        !          1245:                if(w==NULL)
        !          1246:                        fprintf(stderr,"Cannot get the color widget\n");
        !          1247:                else {
        !          1248:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1249:                                case 0:
        !          1250:                                        user.misc&=~COLOR;
        !          1251:                                        break;
        !          1252:                                default:
        !          1253:                                        user.misc|=COLOR;
        !          1254:                        }
        !          1255:                }
        !          1256: 
        !          1257:                w=glade_xml_get_widget(xml, "cUserRIP");
        !          1258:                if(w==NULL)
        !          1259:                        fprintf(stderr,"Cannot get the RIP widget\n");
        !          1260:                else {
        !          1261:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1262:                                case 0:
        !          1263:                                        user.misc&=~RIP;
        !          1264:                                        break;
        !          1265:                                default:
        !          1266:                                        user.misc|=RIP;
        !          1267:                        }
        !          1268:                }
        !          1269: 
        !          1270:                w=glade_xml_get_widget(xml, "cUserWIP");
        !          1271:                if(w==NULL)
        !          1272:                        fprintf(stderr,"Cannot get the WIP widget\n");
        !          1273:                else {
        !          1274:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1275:                                case 0:
        !          1276:                                        user.misc&=~WIP;
        !          1277:                                        break;
        !          1278:                                default:
        !          1279:                                        user.misc|=WIP;
        !          1280:                        }
        !          1281:                }
        !          1282: 
        !          1283:                w=glade_xml_get_widget(xml, "cUserUPAUSE");
        !          1284:                if(w==NULL)
        !          1285:                        fprintf(stderr,"Cannot get the upause widget\n");
        !          1286:                else {
        !          1287:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1288:                                case 0:
        !          1289:                                        user.misc&=~UPAUSE;
        !          1290:                                        break;
        !          1291:                                default:
        !          1292:                                        user.misc|=UPAUSE;
        !          1293:                        }
        !          1294:                }
        !          1295: 
        !          1296:                w=glade_xml_get_widget(xml, "cUserCOLDKEYS");
        !          1297:                if(w==NULL)
        !          1298:                        fprintf(stderr,"Cannot get the coldkeys widget\n");
        !          1299:                else {
        !          1300:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1301:                                case 0:
        !          1302:                                        user.misc&=~COLDKEYS;
        !          1303:                                        break;
        !          1304:                                default:
        !          1305:                                        user.misc|=COLDKEYS;
        !          1306:                        }
        !          1307:                }
        !          1308: 
        !          1309:                w=glade_xml_get_widget(xml, "cUserSPIN");
        !          1310:                if(w==NULL)
        !          1311:                        fprintf(stderr,"Cannot get the spin widget\n");
        !          1312:                else {
        !          1313:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1314:                                case 0:
        !          1315:                                        user.misc&=~SPIN;
        !          1316:                                        break;
        !          1317:                                default:
        !          1318:                                        user.misc|=SPIN;
        !          1319:                        }
        !          1320:                }
        !          1321: 
        !          1322:                w=glade_xml_get_widget(xml, "cUserRIP");
        !          1323:                if(w==NULL)
        !          1324:                        fprintf(stderr,"Cannot get the RIP widget\n");
        !          1325:                else {
        !          1326:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1327:                                case 0:
        !          1328:                                        user.misc&=~RIP;
        !          1329:                                        break;
        !          1330:                                default:
        !          1331:                                        user.misc|=RIP;
        !          1332:                        }
        !          1333:                }
        !          1334: 
        !          1335:                w=glade_xml_get_widget(xml, "sRows");
        !          1336:                if(w==NULL)
        !          1337:                        fprintf(stderr,"Cannot get the rows widget\n");
        !          1338:                else
        !          1339:                        user.rows = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
        !          1340: 
        !          1341:                w=glade_xml_get_widget(xml, "cCommandShell");
        !          1342:                if(w==NULL)
        !          1343:                        fprintf(stderr,"Cannot get the command shell widget\n");
        !          1344:                else
        !          1345:                        user.shell = gtk_combo_box_get_active(GTK_COMBO_BOX(w));
        !          1346: 
        !          1347:                w=glade_xml_get_widget(xml, "cUserEXPERT");
        !          1348:                if(w==NULL)
        !          1349:                        fprintf(stderr,"Cannot get the expert widget\n");
        !          1350:                else {
        !          1351:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1352:                                case 0:
        !          1353:                                        user.misc&=~EXPERT;
        !          1354:                                        break;
        !          1355:                                default:
        !          1356:                                        user.misc&=~EXPERT;
        !          1357:                        }
        !          1358:                }
        !          1359: 
        !          1360:                w=glade_xml_get_widget(xml, "cUserASK_NSCAN");
        !          1361:                if(w==NULL)
        !          1362:                        fprintf(stderr,"Cannot get the ask new scan widget\n");
        !          1363:                else {
        !          1364:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1365:                                case 0:
        !          1366:                                        user.misc&=~ASK_NSCAN;
        !          1367:                                        break;
        !          1368:                                default:
        !          1369:                                        user.misc|=ASK_NSCAN;
        !          1370:                        }
        !          1371:                }
        !          1372: 
        !          1373:                w=glade_xml_get_widget(xml, "cUserASK_SSCAN");
        !          1374:                if(w==NULL)
        !          1375:                        fprintf(stderr,"Cannot get the ask to you scan widget\n");
        !          1376:                else {
        !          1377:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1378:                                case 0:
        !          1379:                                        user.misc&=~ASK_SSCAN;
        !          1380:                                        break;
        !          1381:                                default:
        !          1382:                                        user.misc|=ASK_SSCAN;
        !          1383:                        }
        !          1384:                }
        !          1385: 
        !          1386:                w=glade_xml_get_widget(xml, "cUserCURSUB");
        !          1387:                if(w==NULL)
        !          1388:                        fprintf(stderr,"Cannot get the save current sub widget\n");
        !          1389:                else {
        !          1390:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1391:                                case 0:
        !          1392:                                        user.misc&=~CURSUB;
        !          1393:                                        break;
        !          1394:                                default:
        !          1395:                                        user.misc&=~CURSUB;
        !          1396:                        }
        !          1397:                }
        !          1398: 
        !          1399:                w=glade_xml_get_widget(xml, "cUserQUIET");
        !          1400:                if(w==NULL)
        !          1401:                        fprintf(stderr,"Cannot get the quiet mode widget\n");
        !          1402:                else {
        !          1403:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1404:                                case 0:
        !          1405:                                        user.misc&=~QUIET;
        !          1406:                                        break;
        !          1407:                                default:
        !          1408:                                        user.misc|=QUIET;
        !          1409:                        }
        !          1410:                }
        !          1411: 
        !          1412:                w=glade_xml_get_widget(xml, "cUserAUTOLOGON");
        !          1413:                if(w==NULL)
        !          1414:                        fprintf(stderr,"Cannot get the auto logon widget\n");
        !          1415:                else {
        !          1416:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1417:                                case 0:
        !          1418:                                        user.misc&=~AUTOLOGON;
        !          1419:                                        break;
        !          1420:                                default:
        !          1421:                                        user.misc|=AUTOLOGON;
        !          1422:                        }
        !          1423:                }
        !          1424: 
        !          1425:                w=glade_xml_get_widget(xml, "cUserEXPERT");
        !          1426:                if(w==NULL)
        !          1427:                        fprintf(stderr,"Cannot get the expert widget\n");
        !          1428:                else {
        !          1429:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1430:                                case 0:
        !          1431:                                        user.misc&=~EXPERT;
        !          1432:                                        break;
        !          1433:                                default:
        !          1434:                                        user.misc|=EXPERT;
        !          1435:                        }
        !          1436:                }
        !          1437: 
        !          1438:                w=glade_xml_get_widget(xml, "cUserCHAT_ECHO");
        !          1439:                if(w==NULL)
        !          1440:                        fprintf(stderr,"Cannot get the chat echo widget\n");
        !          1441:                else {
        !          1442:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1443:                                case 0:
        !          1444:                                        user.chat&=~CHAT_ECHO;
        !          1445:                                        break;
        !          1446:                                default:
        !          1447:                                        user.chat|=CHAT_ECHO;
        !          1448:                        }
        !          1449:                }
        !          1450: 
        !          1451:                w=glade_xml_get_widget(xml, "cUserCHAT_ACTION");
        !          1452:                if(w==NULL)
        !          1453:                        fprintf(stderr,"Cannot get the chat action widget\n");
        !          1454:                else {
        !          1455:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1456:                                case 0:
        !          1457:                                        user.chat&=~CHAT_ACTION;
        !          1458:                                        break;
        !          1459:                                default:
        !          1460:                                        user.chat|=CHAT_ACTION;
        !          1461:                        }
        !          1462:                }
        !          1463: 
        !          1464:                w=glade_xml_get_widget(xml, "cUserCHAT_NOPAGE");
        !          1465:                if(w==NULL)
        !          1466:                        fprintf(stderr,"Cannot get the chat nopage widget\n");
        !          1467:                else {
        !          1468:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1469:                                case 0:
        !          1470:                                        user.chat&=~CHAT_NOPAGE;
        !          1471:                                        break;
        !          1472:                                default:
        !          1473:                                        user.chat|=CHAT_NOPAGE;
        !          1474:                        }
        !          1475:                }
        !          1476: 
        !          1477:                w=glade_xml_get_widget(xml, "cUserCHAT_NOACT");
        !          1478:                if(w==NULL)
        !          1479:                        fprintf(stderr,"Cannot get the chat no activity widget\n");
        !          1480:                else {
        !          1481:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1482:                                case 0:
        !          1483:                                        user.chat&=~CHAT_NOACT;
        !          1484:                                        break;
        !          1485:                                default:
        !          1486:                                        user.chat|=CHAT_NOACT;
        !          1487:                        }
        !          1488:                }
        !          1489: 
        !          1490:                w=glade_xml_get_widget(xml, "cUserCHAT_SPLITP");
        !          1491:                if(w==NULL)
        !          1492:                        fprintf(stderr,"Cannot get the chat split personal widget\n");
        !          1493:                else {
        !          1494:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1495:                                case 0:
        !          1496:                                        user.chat&=~CHAT_SPLITP;
        !          1497:                                        break;
        !          1498:                                default:
        !          1499:                                        user.chat&=~CHAT_SPLITP;
        !          1500:                        }
        !          1501:                }
        !          1502: 
        !          1503:        /* Msg/File Settings */
        !          1504: 
        !          1505:                w=glade_xml_get_widget(xml, "cUserNETMAIL");
        !          1506:                if(w==NULL)
        !          1507:                        fprintf(stderr,"Cannot get the netmail widget\n");
        !          1508:                else {
        !          1509:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1510:                                case 0:
        !          1511:                                        user.misc&=~NETMAIL;
        !          1512:                                        break;
        !          1513:                                default:
        !          1514:                                        user.misc|=NETMAIL;
        !          1515:                        }
        !          1516:                }
        !          1517: 
        !          1518:                w=glade_xml_get_widget(xml, "cUserCLRSCRN");
        !          1519:                if(w==NULL)
        !          1520:                        fprintf(stderr,"Cannot get the clear screen widget\n");
        !          1521:                else {
        !          1522:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1523:                                case 0:
        !          1524:                                        user.misc&=~CLRSCRN;
        !          1525:                                        break;
        !          1526:                                default:
        !          1527:                                        user.misc|=CLRSCRN;
        !          1528:                        }
        !          1529:                }
        !          1530: 
        !          1531:                w=glade_xml_get_widget(xml, "cUserANFSCAN");
        !          1532:                if(w==NULL)
        !          1533:                        fprintf(stderr,"Cannot get the ask new file scan widget\n");
        !          1534:                else {
        !          1535:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1536:                                case 0:
        !          1537:                                        user.misc&=~ANFSCAN;
        !          1538:                                        break;
        !          1539:                                default:
        !          1540:                                        user.misc|=ANFSCAN;
        !          1541:                        }
        !          1542:                }
        !          1543: 
        !          1544:                w=glade_xml_get_widget(xml, "cUserEXTDESC");
        !          1545:                if(w==NULL)
        !          1546:                        fprintf(stderr,"Cannot get the extended descriptions widget\n");
        !          1547:                else {
        !          1548:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1549:                                case 0:
        !          1550:                                        user.misc&=~EXTDESC;
        !          1551:                                        break;
        !          1552:                                default:
        !          1553:                                        user.misc|=EXTDESC;
        !          1554:                        }
        !          1555:                }
        !          1556: 
        !          1557:                w=glade_xml_get_widget(xml, "cUserBATCHFLAG");
        !          1558:                if(w==NULL)
        !          1559:                        fprintf(stderr,"Cannot get the batch flagging widget\n");
        !          1560:                else {
        !          1561:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1562:                                case 0:
        !          1563:                                        user.misc&=~BATCHFLAG;
        !          1564:                                        break;
        !          1565:                                default:
        !          1566:                                        user.misc|=BATCHFLAG;
        !          1567:                        }
        !          1568:                }
        !          1569: 
        !          1570:                w=glade_xml_get_widget(xml, "cUserAUTOHANG");
        !          1571:                if(w==NULL)
        !          1572:                        fprintf(stderr,"Cannot get the auto hangup after transfer widget\n");
        !          1573:                else {
        !          1574:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1575:                                case 0:
        !          1576:                                        user.misc&=~AUTOHANG;
        !          1577:                                        break;
        !          1578:                                default:
        !          1579:                                        user.misc|=AUTOHANG;
        !          1580:                        }
        !          1581:                }
        !          1582: 
        !          1583:                w=glade_xml_get_widget(xml, "cUserCLRSCRN");
        !          1584:                if(w==NULL)
        !          1585:                        fprintf(stderr,"Cannot get the clear screen widget\n");
        !          1586:                else {
        !          1587:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1588:                                case 0:
        !          1589:                                        user.misc&=~CLRSCRN;
        !          1590:                                        break;
        !          1591:                                default:
        !          1592:                                        user.misc|=CLRSCRN;
        !          1593:                        }
        !          1594:                }
        !          1595: 
        !          1596:                w=glade_xml_get_widget(xml, "cExternalEditor");
        !          1597:                if(w==NULL)
        !          1598:                        fprintf(stderr,"Cannot get the external editor widget\n");
        !          1599:                else
        !          1600:                        user.xedit = gtk_combo_box_get_active(GTK_COMBO_BOX(w));
        !          1601: 
        !          1602:                w=glade_xml_get_widget(xml, "cDefaultDownloadProtocol");
        !          1603:                if(w==NULL)
        !          1604:                        fprintf(stderr,"Cannot get the default download protocol widget\n");
        !          1605:                else {
        !          1606:                        if(gtk_combo_box_get_active(GTK_COMBO_BOX(w))==0)
        !          1607:                                user.prot=' ';
        !          1608:                        else
        !          1609:                                user.prot=cfg.prot[gtk_combo_box_get_active(GTK_COMBO_BOX(w))-1]->mnemonic;
        !          1610:                }
        !          1611: 
        !          1612:                w=glade_xml_get_widget(xml, "cTempQWKFileType");
        !          1613:                if(w==NULL)
        !          1614:                        fprintf(stderr,"Cannot get the temp QWK file type widget\n");
        !          1615:                else
        !          1616:                        strcpy(user.tmpext, cfg.fcomp[gtk_combo_box_get_active(GTK_COMBO_BOX(w))]->ext);
        !          1617: 
        !          1618:                w=glade_xml_get_widget(xml, "cUserQWK_FILES");
        !          1619:                if(w==NULL)
        !          1620:                        fprintf(stderr,"Cannot get the include new files list widget\n");
        !          1621:                else {
        !          1622:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1623:                                case 0:
        !          1624:                                        user.qwk&=~QWK_FILES;
        !          1625:                                        break;
        !          1626:                                default:
        !          1627:                                        user.qwk|=QWK_FILES;
        !          1628:                        }
        !          1629:                }
        !          1630: 
        !          1631:                w=glade_xml_get_widget(xml, "cUserQWK_EMAIL");
        !          1632:                if(w==NULL)
        !          1633:                        fprintf(stderr,"Cannot get the include unread email widget\n");
        !          1634:                else {
        !          1635:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1636:                                case 0:
        !          1637:                                        user.qwk&=~QWK_EMAIL;
        !          1638:                                        break;
        !          1639:                                default:
        !          1640:                                        user.qwk|=QWK_EMAIL;
        !          1641:                        }
        !          1642:                }
        !          1643: 
        !          1644:                w=glade_xml_get_widget(xml, "cUserQWK_ALLMAIL");
        !          1645:                if(w==NULL)
        !          1646:                        fprintf(stderr,"Cannot get the include all email widget\n");
        !          1647:                else {
        !          1648:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1649:                                case 0:
        !          1650:                                        user.qwk&=~QWK_ALLMAIL;
        !          1651:                                        break;
        !          1652:                                default:
        !          1653:                                        user.qwk|=QWK_ALLMAIL;
        !          1654:                        }
        !          1655:                }
        !          1656: 
        !          1657:                w=glade_xml_get_widget(xml, "cUserQWK_DELMAIL");
        !          1658:                if(w==NULL)
        !          1659:                        fprintf(stderr,"Cannot get the delete email widget\n");
        !          1660:                else {
        !          1661:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1662:                                case 0:
        !          1663:                                        user.qwk&=~QWK_DELMAIL;
        !          1664:                                        break;
        !          1665:                                default:
        !          1666:                                        user.qwk|=QWK_DELMAIL;
        !          1667:                        }
        !          1668:                }
        !          1669: 
        !          1670:                w=glade_xml_get_widget(xml, "cUserQWK_BYSELF");
        !          1671:                if(w==NULL)
        !          1672:                        fprintf(stderr,"Cannot get the include messages by self widget\n");
        !          1673:                else {
        !          1674:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1675:                                case 0:
        !          1676:                                        user.qwk&=~QWK_BYSELF;
        !          1677:                                        break;
        !          1678:                                default:
        !          1679:                                        user.qwk|=QWK_BYSELF;
        !          1680:                        }
        !          1681:                }
        !          1682: 
        !          1683:                w=glade_xml_get_widget(xml, "cUserQWK_EXPCTLA");
        !          1684:                if(w==NULL)
        !          1685:                        fprintf(stderr,"Cannot get the expand ctrl-a widget\n");
        !          1686:                else {
        !          1687:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1688:                                case 0:
        !          1689:                                        user.qwk&=~QWK_EXPCTLA;
        !          1690:                                        break;
        !          1691:                                default:
        !          1692:                                        user.qwk|=QWK_EXPCTLA;
        !          1693:                        }
        !          1694:                }
        !          1695: 
        !          1696:                w=glade_xml_get_widget(xml, "cUserQWK_RETCTLA");
        !          1697:                if(w==NULL)
        !          1698:                        fprintf(stderr,"Cannot get the retain ctrl-a widget\n");
        !          1699:                else {
        !          1700:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1701:                                case 0:
        !          1702:                                        user.qwk&=~QWK_RETCTLA;
        !          1703:                                        break;
        !          1704:                                default:
        !          1705:                                        user.qwk|=QWK_RETCTLA;
        !          1706:                        }
        !          1707:                }
        !          1708: 
        !          1709:                w=glade_xml_get_widget(xml, "cUserQWK_ATTACH");
        !          1710:                if(w==NULL)
        !          1711:                        fprintf(stderr,"Cannot get the include attachments widget\n");
        !          1712:                else {
        !          1713:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1714:                                case 0:
        !          1715:                                        user.qwk&=~QWK_ATTACH;
        !          1716:                                        break;
        !          1717:                                default:
        !          1718:                                        user.qwk|=QWK_ATTACH;
        !          1719:                        }
        !          1720:                }
        !          1721: 
        !          1722:                w=glade_xml_get_widget(xml, "cUserQWK_NOINDEX");
        !          1723:                if(w==NULL)
        !          1724:                        fprintf(stderr,"Cannot get the don't include index files widget\n");
        !          1725:                else {
        !          1726:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1727:                                case 0:
        !          1728:                                        user.qwk&=~QWK_NOINDEX;
        !          1729:                                        break;
        !          1730:                                default:
        !          1731:                                        user.qwk|=QWK_NOINDEX;
        !          1732:                        }
        !          1733:                }
        !          1734: 
        !          1735:                w=glade_xml_get_widget(xml, "cUserQWK_TZ");
        !          1736:                if(w==NULL)
        !          1737:                        fprintf(stderr,"Cannot get the include TZ widget\n");
        !          1738:                else {
        !          1739:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1740:                                case 0:
        !          1741:                                        user.qwk&=~QWK_TZ;
        !          1742:                                        break;
        !          1743:                                default:
        !          1744:                                        user.qwk|=QWK_TZ;
        !          1745:                        }
        !          1746:                }
        !          1747: 
        !          1748:                w=glade_xml_get_widget(xml, "cUserQWK_VIA");
        !          1749:                if(w==NULL)
        !          1750:                        fprintf(stderr,"Cannot get the include VIA widget\n");
        !          1751:                else {
        !          1752:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1753:                                case 0:
        !          1754:                                        user.qwk&=~QWK_VIA;
        !          1755:                                        break;
        !          1756:                                default:
        !          1757:                                        user.qwk&=~QWK_VIA;
        !          1758:                        }
        !          1759:                }
        !          1760: 
        !          1761:                w=glade_xml_get_widget(xml, "cUserQWK_NOCTRL");
        !          1762:                if(w==NULL)
        !          1763:                        fprintf(stderr,"Cannot get the include extraneous control files widget\n");
        !          1764:                else {
        !          1765:                        switch(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
        !          1766:                                case 0:
        !          1767:                                        user.qwk&=~QWK_NOCTRL;
        !          1768:                                        break;
        !          1769:                                default:
        !          1770:                                        user.qwk|=QWK_NOCTRL;
        !          1771:                        }
        !          1772:                }
        !          1773: 
        !          1774:        /* Extended Comment */
        !          1775:                sprintf(str,"%suser/%4.4u.msg", cfg.data_dir,user.number);
        !          1776:                w=glade_xml_get_widget(xml, "tExtendedComment");
        !          1777:                gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(w)), &start);
        !          1778:                gtk_text_buffer_get_end_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(w)), &end);
        !          1779:                f=fopen(str,"w");
        !          1780:                if(f) {
        !          1781:                        fputs(gtk_text_buffer_get_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(w)),&start,&end,TRUE), f);
        !          1782:                        fclose(f);
        !          1783:                }
        !          1784: 
        !          1785:        if(user.number) {
        !          1786:                putuserdat(&cfg, &user);
        !          1787:                load_user(wiggy, data);
        !          1788:        }
        !          1789:        else {
        !          1790:                newuserdat(&cfg, &user);
        !          1791:                update_current_user(user.number);
        !          1792:        }
        !          1793: }
        !          1794: 
        !          1795: void new_user(GtkWidget *wiggy, gpointer data)
        !          1796: {
        !          1797:        GtkWidget       *eCurrentUser;
        !          1798:        int                     i;
        !          1799: 
        !          1800:        memset(&user,0,sizeof(user));
        !          1801:  
        !          1802:        /****************/   
        !          1803:        /* Set Defaults */
        !          1804:        /****************/
        !          1805:  
        !          1806:        /* security */
        !          1807:        user.level=cfg.new_level;
        !          1808:        user.flags1=cfg.new_flags1;
        !          1809:        user.flags2=cfg.new_flags2;
        !          1810:        user.flags3=cfg.new_flags3;
        !          1811:        user.flags4=cfg.new_flags4;
        !          1812:        user.rest=cfg.new_rest;
        !          1813:        user.exempt=cfg.new_exempt;
        !          1814:  
        !          1815:        user.cdt=cfg.new_cdt;
        !          1816:        user.min=cfg.new_min;
        !          1817:        user.freecdt=cfg.level_freecdtperday[user.level];
        !          1818:         
        !          1819:        if(cfg.total_fcomps)
        !          1820:                strcpy(user.tmpext,cfg.fcomp[0]->ext);
        !          1821:        else
        !          1822:                strcpy(user.tmpext,"ZIP");
        !          1823:        for(i=0;i<cfg.total_xedits;i++)
        !          1824:                if(!stricmp(cfg.xedit[i]->code,cfg.new_xedit))
        !          1825:                        break;
        !          1826:        if(i<cfg.total_xedits)
        !          1827:                user.xedit=i+1;
        !          1828:         
        !          1829:        user.shell=cfg.new_shell;
        !          1830:        user.misc=(cfg.new_misc&~(DELETED|INACTIVE|QUIET|NETMAIL));
        !          1831:        user.misc|=AUTOTERM;    /* No way to frob the default value... */
        !          1832:        user.qwk=QWK_DEFAULT;
        !          1833:        user.firston=time(NULL);
        !          1834:        user.laston=time(NULL); /* must set this or user may be purged prematurely */
        !          1835:        user.pwmod=time(NULL);
        !          1836:        user.sex=' ';
        !          1837:        user.prot=cfg.new_prot;
        !          1838: 
        !          1839:        if(cfg.new_expire)
        !          1840:                user.expire=time(NULL)+((long)cfg.new_expire*24L*60L*60L);
        !          1841: 
        !          1842:        eCurrentUser=glade_xml_get_widget(xml, "eCurrentUser");
        !          1843:        if(eCurrentUser==NULL) {
        !          1844:                fprintf(stderr,"Cannot get the current user widget\n");
        !          1845:                load_user(wiggy, data);
        !          1846:                return;
        !          1847:        }
        !          1848:        gtk_entry_set_text(GTK_ENTRY(eCurrentUser), "New"       );
        !          1849:        current_user=0;
        !          1850:        load_user(wiggy, data);
        !          1851: }
        !          1852: 
        !          1853: int update_current_user(int new_user)
        !          1854: {
        !          1855:        char    str[11];
        !          1856:        GtkWidget       *eCurrentUser;
        !          1857: 
        !          1858:        if(new_user<1 || new_user>totalusers)
        !          1859:                new_user=current_user;
        !          1860:        sprintf(str,"%d",new_user);
        !          1861:        eCurrentUser=glade_xml_get_widget(xml, "eCurrentUser");
        !          1862:        if(eCurrentUser==NULL) {
        !          1863:                fprintf(stderr,"Cannot get the current user widget\n");
        !          1864:                return(-1);
        !          1865:        }
        !          1866:        if(strcmp(gtk_entry_get_text(GTK_ENTRY(eCurrentUser)),str))
        !          1867:                gtk_entry_set_text(GTK_ENTRY(eCurrentUser), str);
        !          1868:        if(new_user!=current_user) {
        !          1869:                current_user=new_user;
        !          1870:                load_user(eCurrentUser,NULL);
        !          1871:        }
        !          1872:        return(0);
        !          1873: }
        !          1874: 
        !          1875: void current_user_changed(GtkWidget *w, gpointer data)
        !          1876: {
        !          1877:        int new_user;
        !          1878: 
        !          1879:        new_user=atoi(gtk_entry_get_text(GTK_ENTRY(w)));
        !          1880:        update_current_user(new_user);
        !          1881: }
        !          1882: 
        !          1883: void first_user(GtkWidget *w, gpointer data)
        !          1884: {
        !          1885:        update_current_user(1);
        !          1886: }
        !          1887: 
        !          1888: void prev_user(GtkWidget *w, gpointer data)
        !          1889: {
        !          1890:        update_current_user(current_user-1);
        !          1891: }
        !          1892: 
        !          1893: void next_user(GtkWidget *w, gpointer data)
        !          1894: {
        !          1895:        update_current_user(current_user+1);
        !          1896: }
        !          1897: 
        !          1898: void last_user(GtkWidget *w, gpointer data)
        !          1899: {
        !          1900:        update_current_user(totalusers);
        !          1901: }
        !          1902: 
        !          1903: void show_about_box(GtkWidget *unused, gpointer data)
        !          1904: {
        !          1905:        GladeXML        *axml;
        !          1906:     axml = glade_xml_new(glade_path, "AboutWindow", NULL);
        !          1907:        if(axml==NULL) {
        !          1908:                fprintf(stderr,"Could not locate AboutWindow widget\n");
        !          1909:                return;
        !          1910:        }
        !          1911:     /* connect the signals in the interface */
        !          1912:     glade_xml_signal_autoconnect(axml);
        !          1913:        gtk_window_present(GTK_WINDOW(glade_xml_get_widget(axml, "AboutWindow")));
        !          1914: }
        !          1915: 
        !          1916: void user_toggle_delete(GtkWidget *t, gpointer data)
        !          1917: {
        !          1918:        gboolean        deleted;
        !          1919:        GtkWidget       *w;
        !          1920: 
        !          1921:        g_object_get(G_OBJECT(t), "active", &deleted, NULL);
        !          1922: 
        !          1923:        w=glade_xml_get_widget(xml, "bDelete");
        !          1924:        if(w==NULL)
        !          1925:                fprintf(stderr,"Cannot get the deleted toolbar widget\n");
        !          1926:        else
        !          1927:                gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(w),deleted);
        !          1928:        w=glade_xml_get_widget(xml, "delete1");
        !          1929:        if(w==NULL)
        !          1930:                fprintf(stderr,"Cannot get the deleted menu widget\n");
        !          1931:        else
        !          1932:                gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(w),deleted);
        !          1933:        user_changed(t, data);
        !          1934: }
        !          1935: 
        !          1936: void user_toggle_inactive(GtkWidget *t, gpointer data)
        !          1937: {
        !          1938:        gboolean        inactive;
        !          1939:        GtkWidget       *w;
        !          1940: 
        !          1941:        g_object_get(G_OBJECT(t), "active", &inactive, NULL);
        !          1942: 
        !          1943:        w=glade_xml_get_widget(xml, "bRemove");
        !          1944:        if(w==NULL)
        !          1945:                fprintf(stderr,"Cannot get the removed toolbar widget\n");
        !          1946:        else
        !          1947:                gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(w),inactive);
        !          1948:        w=glade_xml_get_widget(xml, "remove1");
        !          1949:        if(w==NULL)
        !          1950:                fprintf(stderr,"Cannot get the remove menu widget\n");
        !          1951:        else
        !          1952:                gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(w),inactive);
        !          1953:        user_changed(t, data);
        !          1954: }
        !          1955: 
        !          1956: void find_user(GtkWidget *t, gpointer data)
        !          1957: {
        !          1958:        GtkWidget       *w;
        !          1959:        unsigned int    nu;
        !          1960: 
        !          1961:        w=glade_xml_get_widget(xml, "eMatchUser");
        !          1962:        if(w==NULL)
        !          1963:                fprintf(stderr,"Cannot get the find user entry widget\n");
        !          1964:        else {
        !          1965:                nu=matchuser(&cfg, (char *)gtk_entry_get_text(GTK_ENTRY(w)), TRUE);
        !          1966:                if(nu==0) {
        !          1967:                        GladeXML        *cxml;
        !          1968:                        cxml = glade_xml_new(glade_path, "NotFoundWindow", NULL);
        !          1969:                    /* connect the signals in the interface */
        !          1970:                    glade_xml_signal_autoconnect(cxml);
        !          1971:                        if(cxml==NULL)
        !          1972:                                fprintf(stderr,"Could not locate NotFoundWindow widget\n");
        !          1973:                        gtk_window_present(GTK_WINDOW(glade_xml_get_widget(cxml, "NotFoundWindow")));
        !          1974:                }
        !          1975:                else
        !          1976:                        update_current_user(nu);
        !          1977:        }
        !          1978: }
        !          1979: 
        !          1980: void close_this_window(GtkWidget *t, gpointer data)
        !          1981: {
        !          1982:        gtk_widget_destroy(GTK_WIDGET(gtk_widget_get_toplevel(t)));
        !          1983: }
        !          1984: 
        !          1985: int got_date;
        !          1986: 
        !          1987: void destroy_calendar_window(GtkWidget *t, gpointer data)
        !          1988: {
        !          1989:        if(!got_date)
        !          1990:                gtk_main_quit();
        !          1991: }
        !          1992: 
        !          1993: void changed_day(GtkWidget *t, gpointer data)
        !          1994: {
        !          1995:        got_date=1;
        !          1996:        gtk_main_quit();
        !          1997: }
        !          1998: 
        !          1999: int get_date(GtkWidget *t, isoDate_t *date)
        !          2000: {
        !          2001:        GladeXML        *cxml;
        !          2002:        GtkWidget       *w;
        !          2003:        GtkWidget       *win;
        !          2004:        GtkWidget       *thiswin;
        !          2005:        gint            x,x_off;
        !          2006:        gint            y,y_off;
        !          2007:        guint           year;
        !          2008:        guint           month;
        !          2009:        guint           day;
        !          2010:        isoDate_t       odate=*date;
        !          2011: 
        !          2012:        got_date=0;
        !          2013:     cxml = glade_xml_new(glade_path, "CalendarWindow", NULL);
        !          2014:        if(cxml==NULL) {
        !          2015:                fprintf(stderr,"Could not locate Calendar Window XML\n");
        !          2016:                return(-1);
        !          2017:        }
        !          2018:     /* connect the signals in the interface */
        !          2019:     glade_xml_signal_autoconnect(cxml);
        !          2020:        win=glade_xml_get_widget(cxml, "CalendarWindow");
        !          2021:        if(win==NULL) {
        !          2022:                fprintf(stderr,"Could not locate Calendar window\n");
        !          2023:                return(-1);
        !          2024:        }
        !          2025: 
        !          2026:        thiswin = gtk_widget_get_toplevel(t);
        !          2027:        if(thiswin==NULL) {
        !          2028:                fprintf(stderr,"Could not locate main window\n");
        !          2029:                return(-1);
        !          2030:        }
        !          2031:        if(!(gtk_widget_translate_coordinates(GTK_WIDGET(t)
        !          2032:                        ,GTK_WIDGET(thiswin), 0, 0, &x_off, &y_off))) {
        !          2033:                fprintf(stderr,"Could not get position of button in window");
        !          2034:        }
        !          2035:        gtk_window_get_position(GTK_WINDOW(thiswin), &x, &y);
        !          2036: 
        !          2037:        gtk_window_move(GTK_WINDOW(win), x+x_off, y+y_off);
        !          2038: 
        !          2039:        w=glade_xml_get_widget(cxml, "Calendar");
        !          2040:        if(w==NULL) {
        !          2041:                fprintf(stderr,"Could not locate Calendar widget\n");
        !          2042:                return(-1);
        !          2043:        }
        !          2044:        gtk_calendar_select_month(GTK_CALENDAR(w), isoDate_month(*date)-1, isoDate_year(*date));
        !          2045:        gtk_calendar_select_day(GTK_CALENDAR(w), isoDate_day(*date));
        !          2046:        gtk_window_present(GTK_WINDOW(win));
        !          2047:        /* Wait for window to close... */
        !          2048:        gtk_main();
        !          2049:        w=glade_xml_get_widget(cxml, "Calendar");
        !          2050:        if(w==NULL)
        !          2051:                return(-1);
        !          2052:        gtk_calendar_get_date(GTK_CALENDAR(w), &year, &month, &day);
        !          2053:        gtk_widget_destroy(GTK_WIDGET(gtk_widget_get_toplevel(GTK_WIDGET(w))));
        !          2054:        *date=isoDate_create(year, month+1, day);
        !          2055:        return(odate!=*date);
        !          2056: }
        !          2057: 
        !          2058: void get_expiration(GtkWidget *t, gpointer data)
        !          2059: {
        !          2060:        isoDate_t       date;
        !          2061:        GtkWidget       *w;
        !          2062:        char            str[9];
        !          2063: 
        !          2064:        date=time_to_isoDate(user.expire?user.expire:time(NULL));
        !          2065:        if(!get_date(t, &date)) {
        !          2066:                user.expire = isoDateTime_to_time(date,0);
        !          2067:                user_changed(t, data);
        !          2068:                w=glade_xml_get_widget(xml, "eExpiration");
        !          2069:                if(w==NULL)
        !          2070:                        fprintf(stderr,"Cannot get the expiration widget\n");
        !          2071:                else {
        !          2072:                        if(user.expire)
        !          2073:                                unixtodstr(&cfg, user.expire, str);
        !          2074:                        else
        !          2075:                                strcpy(str,"Never");
        !          2076:                        gtk_entry_set_text(GTK_ENTRY(w),str);
        !          2077:                }
        !          2078:        }
        !          2079: }
        !          2080: 
        !          2081: void clear_expire(GtkWidget *t, gpointer data)
        !          2082: {
        !          2083:        GtkWidget       *w;
        !          2084: 
        !          2085:        w=glade_xml_get_widget(xml, "eExpiration");
        !          2086:        if(w==NULL)
        !          2087:                fprintf(stderr,"Cannot get the expiration widget\n");
        !          2088:        user.expire=0;
        !          2089:        gtk_entry_set_text(GTK_ENTRY(w),"Never");
        !          2090:        user_changed(t,data);
        !          2091: }
        !          2092: 
        !          2093: void get_birthdate(GtkWidget *t, gpointer data)
        !          2094: {
        !          2095:        isoDate_t       date;
        !          2096:        GtkWidget       *w;
        !          2097:        int                     year;
        !          2098:        char            str[9];
        !          2099: 
        !          2100:        year=atoi(user.birth+6)+1900;
        !          2101:        if(year<Y2K_2DIGIT_WINDOW)
        !          2102:                year+=100;
        !          2103:        if(cfg.sys_misc&SM_EURODATE)
        !          2104:                date=isoDate_create(year, atoi(user.birth+3), atoi(user.birth));
        !          2105:        else
        !          2106:                date=isoDate_create(year, atoi(user.birth), atoi(user.birth+3));
        !          2107:        if(!get_date(t, &date)) {
        !          2108:                if(cfg.sys_misc&SM_EURODATE)
        !          2109:                        sprintf(user.birth,"%02u/%02u/%02u",isoDate_day(date),isoDate_month(date),isoDate_year(date));
        !          2110:                else
        !          2111:                        sprintf(user.birth,"%02u/%02u/%02u",isoDate_month(date),isoDate_day(date),isoDate_year(date));
        !          2112:                user_changed(t, data);
        !          2113:                w=glade_xml_get_widget(xml, "eBirthdate");
        !          2114:                if(w==NULL)
        !          2115:                        fprintf(stderr,"Cannot get the birthdate widget\n");
        !          2116:                else
        !          2117:                        gtk_entry_set_text(GTK_ENTRY(w),user.birth);
        !          2118:        }
        !          2119: }
        !          2120: 
        !          2121: 
        !          2122: void get_firston(GtkWidget *t, gpointer data)
        !          2123: {
        !          2124:        isoDate_t       date;
        !          2125:        GtkWidget       *w;
        !          2126:        char            str[9];
        !          2127: 
        !          2128:        date=time_to_isoDate(user.firston?user.firston:time(NULL));
        !          2129:        if(!get_date(t, &date)) {
        !          2130:                user.firston = isoDateTime_to_time(date,0);
        !          2131:                user_changed(t, data);
        !          2132:                w=glade_xml_get_widget(xml, "eFirstOn");
        !          2133:                if(w==NULL)
        !          2134:                        fprintf(stderr,"Cannot get the first on widget\n");
        !          2135:                else {
        !          2136:                        if(user.firston)
        !          2137:                                unixtodstr(&cfg, user.firston, str);
        !          2138:                        else
        !          2139:                                strcpy(str,"Never");
        !          2140:                        gtk_entry_set_text(GTK_ENTRY(w),str);
        !          2141:                }
        !          2142:        }
        !          2143: }
        !          2144: 
        !          2145: void clear_firston(GtkWidget *t, gpointer data)
        !          2146: {
        !          2147:        GtkWidget       *w;
        !          2148: 
        !          2149:        w=glade_xml_get_widget(xml, "eFirstOn");
        !          2150:        if(w==NULL)
        !          2151:                fprintf(stderr,"Cannot get the first on widget\n");
        !          2152:        user.firston=0;
        !          2153:        gtk_entry_set_text(GTK_ENTRY(w),"Never");
        !          2154:        user_changed(t,data);
        !          2155: }
        !          2156: 
        !          2157: void get_laston(GtkWidget *t, gpointer data)
        !          2158: {
        !          2159:        isoDate_t       date;
        !          2160:        GtkWidget       *w;
        !          2161:        char            str[9];
        !          2162: 
        !          2163:        date=time_to_isoDate(user.laston?user.laston:time(NULL));
        !          2164:        if(!get_date(t, &date)) {
        !          2165:                user.laston = isoDateTime_to_time(date,0);
        !          2166:                user_changed(t, data);
        !          2167:                w=glade_xml_get_widget(xml, "eLastOn");
        !          2168:                if(w==NULL)
        !          2169:                        fprintf(stderr,"Cannot get the expiration widget\n");
        !          2170:                else {
        !          2171:                        if(user.laston)
        !          2172:                                unixtodstr(&cfg, user.laston, str);
        !          2173:                        else
        !          2174:                                strcpy(str,"Never");
        !          2175:                        gtk_entry_set_text(GTK_ENTRY(w),str);
        !          2176:                }
        !          2177:        }
        !          2178: }
        !          2179: 
        !          2180: void clear_laston(GtkWidget *t, gpointer data)
        !          2181: {
        !          2182:        GtkWidget       *w;
        !          2183: 
        !          2184:        w=glade_xml_get_widget(xml, "eLastOn");
        !          2185:        if(w==NULL)
        !          2186:                fprintf(stderr,"Cannot get the expiration widget\n");
        !          2187:        user.laston=0;
        !          2188:        gtk_entry_set_text(GTK_ENTRY(w),"Never");
        !          2189:        user_changed(t,data);
        !          2190: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.