void start_cfg(void) { char *cause = NULL; const char *home; cfg_cmd_q = cmdq_new(NULL); cfg_cmd_q->emptyfn = cfg_default_done; cfg_finished = 0; cfg_references = 1; cfg_client = TAILQ_FIRST(&clients); if (cfg_client != NULL) cfg_client->references++; if (access(TMUX_CONF, R_OK) == 0) { if (load_cfg(TMUX_CONF, cfg_cmd_q, &cause) == -1) cfg_add_cause("%s: %s", TMUX_CONF, cause); } else if (errno != ENOENT) cfg_add_cause("%s: %s", TMUX_CONF, strerror(errno)); if (cfg_file == NULL && (home = find_home()) != NULL) { xasprintf(&cfg_file, "%s/.tmux.conf", home); if (access(cfg_file, R_OK) != 0 && errno == ENOENT) { free(cfg_file); cfg_file = NULL; } } if (cfg_file != NULL && load_cfg(cfg_file, cfg_cmd_q, &cause) == -1) cfg_add_cause("%s: %s", cfg_file, cause); free(cause); cmdq_continue(cfg_cmd_q); }
void start_cfg(void) { const char *home; int quiet = 0; cfg_cmd_q = cmdq_new(NULL); cfg_cmd_q->emptyfn = cfg_default_done; cfg_finished = 0; cfg_references = 1; cfg_client = TAILQ_FIRST(&clients); if (cfg_client != NULL) cfg_client->references++; load_cfg(TMUX_CONF, cfg_cmd_q, 1); if (cfg_file == NULL && (home = find_home()) != NULL) { xasprintf(&cfg_file, "%s/.tmux.conf", home); quiet = 1; } if (cfg_file != NULL) load_cfg(cfg_file, cfg_cmd_q, quiet); cmdq_continue(cfg_cmd_q); }
enum cmd_retval cmd_source_file_exec(struct cmd *self, struct cmd_q *cmdq) { struct args *args = self->args; struct cmd_q *cmdq1; int quiet; cmdq1 = cmdq_new(cmdq->client); cmdq1->flags |= cmdq->flags & CMD_Q_NOHOOKS; cmdq1->emptyfn = cmd_source_file_done; cmdq1->data = cmdq; quiet = args_has(args, 'q'); switch (load_cfg(args->argv[0], cmdq1, quiet)) { case -1: cmdq_free(cmdq1); if (cfg_references == 0) { cfg_print_causes(cmdq); return (CMD_RETURN_ERROR); } return (CMD_RETURN_NORMAL); case 0: cmdq_free(cmdq1); if (cfg_references == 0) cfg_print_causes(cmdq); return (CMD_RETURN_NORMAL); } cmdq->references++; cfg_references++; cmdq_continue(cmdq1); return (CMD_RETURN_WAIT); }
Setting_1::Setting_1(QWidget *parent) : QDialog(parent), ui(new Ui::Setting_1) { ui->setupUi(this);//在这里应该装载文件cfg文件内容 load_cfg(); this->setWindowFlags(Qt::WindowStaysOnTopHint|Qt::FramelessWindowHint);//去掉标题栏 }
/* --------------------------------- */ void init_mtext(void) { register int i, j; int a, b; scrtchp = (long)Malloc(2048L); mtext_mlen = (long)Malloc(-1L) - 75000; mtext_mem = (unsigned char *)Malloc(mtext_mlen); /*printf("\033H%lx\n", mtext_mem);*/ memset(mtext_mem, 0, mtext_mlen); pathes[0][0] = Dgetdrv(); pathes[0][1] = ':'; Dgetpath(pathes[0] + 2, 0); strcat(pathes[0] + 2, "\\"); pathes[0][0] += 'A'; strcpy(pathes[1], pathes[0]); strcpy(pathes[2], pathes[0]); strcpy(pathes[3], pathes[0]); pic_fpath[0] = pathes[0][0]; del_file[0] = font_path[0] = pathes[0][0]; for (i = 0; i < 68; txt_lineal[0][i++] = '.'); txt_lineal[0][68] = 0; strcpy(txt_lineal[1], txt_lineal[0]); strcpy(txt_lineal[2], txt_lineal[0]); strcpy(txt_lineal[3], txt_lineal[0]); strncpy(txt_linpar[0], "NPS110", 6); strncpy(txt_linpar[1], txt_linpar[0], 6); strncpy(txt_linpar[2], txt_linpar[0], 6); strncpy(txt_linpar[3], txt_linpar[0], 6); strcpy(txt_infol[0], " Seite: 999, Zeile: 99999, Spalte: 999 Einf�gen "); strcpy(txt_infol[1], txt_infol[0]); strcpy(txt_infol[2], txt_infol[0]); strcpy(txt_infol[3], txt_infol[0]); vst_alignment(vdi_handle, 0, 3, &a, &b); vsf_perimeter(vdi_handle, FALSE); load_cfg(); get_work(0); for (i = 0; i < 4; i++) { w_koor[i][0] = wx; w_koor[i][1] = wy; w_koor[i][2] = ww - (3 - i) * 10; w_koor[i][3] = wh - i * 10; } }
int cmd_source_file_exec(struct cmd *self, struct cmd_ctx *ctx) { struct cmd_source_file_data *data = self->data; char *cause; if (load_cfg(data->path, ctx, &cause) != 0) { ctx->error(ctx, "%s", cause); xfree(cause); return (-1); } return (0); }
S triefort_open(TF ** const fort, const HCFG * const hashcfg, const char * const path) { NULLCHK(fort); NULLCHK(hashcfg); NULLCHK(path); S s; sds fortpath = sdsnew(path); sds cfgpath = sdsdup(fortpath); cfgpath = sdscat(cfgpath, "/" CONFIG_FILE_NAME); if (!file_exists(cfgpath)) { s = triefort_err_not_a_triefort; } else { *fort = calloc(1, sizeof(**fort)); TF * f = *fort; f->path = fortpath; // *fort takes ownership of `fortpath` f->hcfg = hashcfg; if (triefort_ok == (s = load_cfg(&f->cfg, cfgpath))) { if (!validate_cfg(&(*fort)->cfg)) { s = triefort_err_invalid_config; } if (0 != strncmp(hashcfg->fn_name, (*fort)->cfg.hash_name, MAX_LEN_HASH_NAME)) { s = triefort_err_hash_name_mismatch; } if (triefort_ok != s) { triefort_close(*fort); *fort = NULL; } } } sdsfree(cfgpath); return s; }
int cmd_source_file_exec(struct cmd *self, struct cmd_ctx *ctx) { struct args *args = self->args; struct causelist causes; char *cause; struct window_pane *wp; int retval; u_int i; ARRAY_INIT(&causes); retval = load_cfg(args->argv[0], ctx, &causes); if (ARRAY_EMPTY(&causes)) return (retval); if (retval == 1 && !RB_EMPTY(&sessions) && ctx->cmdclient != NULL) { wp = RB_MIN(sessions, &sessions)->curw->window->active; window_pane_set_mode(wp, &window_copy_mode); window_copy_init_for_output(wp); for (i = 0; i < ARRAY_LENGTH(&causes); i++) { cause = ARRAY_ITEM(&causes, i); window_copy_add(wp, "%s", cause); xfree(cause); } } else { for (i = 0; i < ARRAY_LENGTH(&causes); i++) { cause = ARRAY_ITEM(&causes, i); ctx->print(ctx, "%s", cause); xfree(cause); } } ARRAY_FREE(&causes); return (retval); }
void update_userlist_callback(GtkWidget *wiggy, gpointer data) { GtkWidget *w; GtkListStore *lstore = NULL; int totalusers; int i; GtkTreeIter curr; char str[1024]; free_cfg(&cfg); if(!load_cfg(&cfg, NULL, TRUE, str)) { display_message("Load Error","Cannot load configuration data","gtk-dialog-error"); return; } w=glade_xml_get_widget(lxml, "lUserList"); lstore=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(w))); gtk_list_store_clear(lstore); totalusers=lastuser(&cfg); for(i=1; i<=totalusers; i++) { gtk_list_store_insert(lstore, &curr, i-1); update_userlist_item(lstore, &curr, i); } }
int main(int argc, char **argv) { char str[256],*p; int i,j,file; ulong length,max_users=0xffffffff; uint32_t l; sub_status_t *sub_status; scfg_t cfg; glob_t gl; size_t glp; fprintf(stderr,"\nSMBACTIV Version %s (%s) - Synchronet Message Base Activity " "Monitor\n", SMBACTIV_VER, PLATFORM_DESC); if(argc>1) max_users=atol(argv[1]); if(!max_users) { lprintf("\nusage: SMBACTIV [max_users]\n\n"); lprintf("max_users = limit output to subs read by this many users " "or less\n"); return(0); } p=getenv("SBBSCTRL"); if(p==NULL) { printf("\nSBBSCTRL environment variable not set.\n"); #ifdef __unix__ printf("\nExample: export SBBSCTRL=/sbbs/ctrl\n"); #else printf("\nExample: SET SBBSCTRL=C:\\SBBS\\CTRL\n"); #endif return(1); } memset(&cfg,0,sizeof(cfg)); cfg.size=sizeof(cfg); SAFECOPY(cfg.ctrl_dir,p); if(!load_cfg(&cfg,NULL,TRUE,str)) { fprintf(stderr,"!ERROR loading configuration files: %s\n",str); return(1); } chdir(cfg.ctrl_dir); if((sub_status=(sub_status_t *)MALLOC (cfg.total_subs*sizeof(sub_status_t)))==NULL) { printf("ERROR Allocating memory for sub_status\r\n"); return(1); } lprintf("\nReading sub-board "); for(i=0;i<cfg.total_subs;i++) { lprintf("%5d of %-5d\b\b\b\b\b\b\b\b\b\b\b\b\b\b",i+1,cfg.total_subs); sprintf(smb.file,"%s%s",cfg.sub[i]->data_dir,cfg.sub[i]->code); if((j=smb_open(&smb))!=0) { lprintf("Error %d opening %s\r\n",j,smb.file); sub_status[i].read=0; sub_status[i].firstmsg=0L; continue; } sub_status[i].read=0; sub_status[i].firstmsg=first_msg(); smb_close(&smb); } sprintf(str,"%suser/ptrs/*.ixb",cfg.data_dir); if(glob(str, GLOB_MARK, NULL, &gl)) { lprintf("Unable to find any user pointer files.\n"); globfree(&gl); free(sub_status); return(1); } lprintf("\nComparing user pointers "); for(glp=0; glp<gl.gl_pathc; glp++) { lprintf("%-5d\b\b\b\b\b",glp); SAFECOPY(str,gl.gl_pathv[glp]); if((file=nopen(str,O_RDONLY|O_BINARY))==-1) { continue; } length=filelength(file); for(i=0;i<cfg.total_subs;i++) { if(sub_status[i].read>max_users) continue; if(length<(cfg.sub[i]->ptridx+1)*10UL) continue; else { lseek(file,((long)cfg.sub[i]->ptridx*10L)+4L,SEEK_SET); read(file,&l,4); } if(l>sub_status[i].firstmsg) sub_status[i].read++; } close(file); } globfree(&gl); printf("NumUsers Sub-board\n"); printf("-------- -------------------------------------------------" "-----------\n"); for(i=0;i<cfg.total_subs;i++) { if(sub_status[i].read>max_users) continue; printf("%8lu %-*s %-*s\n" ,sub_status[i].read ,LEN_GSNAME,cfg.grp[cfg.sub[i]->grp]->sname ,LEN_SLNAME,cfg.sub[i]->lname); } return(0); }
np_data * cmdinit() { int fd; if (args_num>6) { npdata = &config_list[idx]; if (npdata) printf("Load configration index success!\n"); else { printf("Load configration index fail!\n"); return 0; } } else { npdata = load_cfg(); if (npdata) printf("Load configration file success!\n"); else { printf("Load configration file fail!\n"); return 0; } } if (!npdata) return 0; init_funs(npdata); npdata->spage = spage; npdata->epage = epage; npdata->fname = filename; npdata->ops = ops_t; npdata->cs = cs_index; if((fd=open("/dev/mem",O_RDWR|O_SYNC))==-1) { printf("Can not open memory file!\n"); return 0; } npdata->base_map = mmap(NULL,npdata->bm_ms,PROT_READ | PROT_WRITE,MAP_SHARED,fd,npdata->ebase); if(npdata->base_map == MAP_FAILED) { printf("Can not map EMC_BASE ioport!\n"); return 0; } else printf("Map EMC_BASE success :%x\n",(u32)npdata->base_map); npdata->port_map=mmap(NULL,npdata->pm_ms ,PROT_READ | PROT_WRITE,MAP_SHARED,fd,npdata->dport); if(npdata->port_map== MAP_FAILED) { printf("Can not map NAND_PORT ioport!\n"); return 0; } else printf("Map NAND_PORT success :%x\n",(u32)npdata->port_map); if (npdata->pt == JZ4740) { npdata->gpio_map=mmap(NULL,npdata->gm_ms ,PROT_READ | PROT_WRITE,MAP_SHARED,fd,npdata->gport); if(npdata->gpio_map== MAP_FAILED) { printf("Can not map GPIO ioport!\n"); return 0; } else printf("Map GPIO_PORT success :%x\n",(u32)npdata->gpio_map); } close(fd); printf("Memory map all success!\n"); npdata->nand_init(npdata); return npdata; }
int main(int argc, char **argv) { char* p; char error[512]; char revision[16]; int i; int first_arg=1; time_t now; user_t user; sscanf("$Revision: 1.6 $", "%*s %s", revision); fprintf(stderr,"\nMAKEUSER v%s-%s - Adds User to Synchronet User Database\n" ,revision ,PLATFORM_DESC ); if(argc<2) { printf("%s",usage); return(1); } if(strcspn(argv[first_arg],"/\\")!=strlen(argv[first_arg])) p=argv[first_arg++]; else p=getenv("SBBSCTRL"); if(p==NULL) { printf("\nSBBSCTRL environment variable not set.\n"); printf("\nExample: SET SBBSCTRL=/sbbs/ctrl\n"); exit(1); } memset(&scfg,0,sizeof(scfg)); scfg.size=sizeof(scfg); SAFECOPY(scfg.ctrl_dir,p); if(chdir(scfg.ctrl_dir)!=0) fprintf(stderr,"!ERROR changing directory to: %s", scfg.ctrl_dir); printf("\nLoading configuration files from %s\n",scfg.ctrl_dir); if(!load_cfg(&scfg,NULL,TRUE,error)) { fprintf(stderr,"!ERROR loading configuration files: %s\n",error); exit(1); } if(!(scfg.sys_misc&SM_LOCAL_TZ)) putenv("TZ=UTC0"); now=time(NULL); memset(&user,0,sizeof(user)); /****************/ /* Set Defaults */ /****************/ /* security */ user.level=scfg.new_level; user.flags1=scfg.new_flags1; user.flags2=scfg.new_flags2; user.flags3=scfg.new_flags3; user.flags4=scfg.new_flags4; user.rest=scfg.new_rest; user.exempt=scfg.new_exempt; user.cdt=scfg.new_cdt; user.min=scfg.new_min; user.freecdt=scfg.level_freecdtperday[user.level]; if(scfg.total_fcomps) strcpy(user.tmpext,scfg.fcomp[0]->ext); else strcpy(user.tmpext,"ZIP"); for(i=0;i<scfg.total_xedits;i++) if(!stricmp(scfg.xedit[i]->code,scfg.new_xedit)) break; if(i<scfg.total_xedits) user.xedit=i+1; user.shell=scfg.new_shell; user.misc=(scfg.new_misc&~(DELETED|INACTIVE|QUIET|NETMAIL)); user.misc|=AUTOTERM; /* No way to frob the default value... */ user.qwk=QWK_DEFAULT; user.firston=now; user.laston=now; /* must set this or user may be purged prematurely */ user.pwmod=now; user.sex=' '; user.prot=scfg.new_prot; if(scfg.new_expire) user.expire=now+((long)scfg.new_expire*24L*60L*60L); for(i=first_arg;i<argc;i++) { if(argv[i][0]=='-') { if(argv[i+1]==NULL) { printf("%s",usage); return(1); } switch(toupper(argv[i++][1])) { case 'A': SAFECOPY(user.address,argv[i]); break; case 'B': SAFECOPY(user.birth,argv[i]); break; case 'L': SAFECOPY(user.location,argv[i]); break; case 'C': SAFECOPY(user.comment,argv[i]); break; case 'E': user.expire=now+((long)atoi(argv[i])*24L*60L*60L); break; case 'F': switch(toupper(argv[i-1][2])) { case '1': user.flags1=aftol(argv[i]); break; case '2': user.flags2=aftol(argv[i]); break; case '3': user.flags3=aftol(argv[i]); break; case '4': user.flags4=aftol(argv[i]); break; case 'E': user.exempt=aftol(argv[i]); break; case 'R': user.rest=aftol(argv[i]); break; default: printf("%s",usage); return(1); } break; case 'G': user.sex=toupper(argv[i][0]); break; case 'H': SAFECOPY(user.handle,argv[i]); break; case 'N': SAFECOPY(user.netmail,argv[i]); break; case 'P': SAFECOPY(user.pass,argv[i]); strupr(user.pass); break; case 'R': SAFECOPY(user.name,argv[i]); break; case 'S': user.level=atoi(argv[i]); break; case 'T': SAFECOPY(user.phone,argv[i]); break; case 'Z': SAFECOPY(user.zipcode,argv[i]); break; default: printf("%s",usage); return(1); } } else SAFECOPY(user.alias,argv[i]); } if(user.alias[0]==0) { printf("%s",usage); return(1); } if((i=matchuser(&scfg,user.alias,FALSE))!=0) { printf("!User (%s #%d) already exists\n",user.alias,i); return(2); } if(user.handle[0]==0) SAFECOPY(user.handle,user.alias); if(user.name[0]==0) SAFECOPY(user.name,user.alias); if((i=newuserdat(&scfg, &user))!=0) { fprintf(stderr,"!ERROR %d adding new user record\n",i); return(i); } printf("User record #%d (%s) created successfully.\n",user.number,user.alias); return(0); }
int main(int argc, char **argv) { char revision[16]; char error[512]; char *p,str[256],fname[256],ext,not[MAX_NOTS][9]; uchar *datbuf,*ixbbuf; int i,j,file,dirnum,libnum,desc_off,lines,nots=0 ,omode=O_WRONLY|O_CREAT|O_TRUNC; ulong l,m,n,cdt,misc=0,total_cdt=0,total_files=0,dir_files,datbuflen; time32_t uld,dld,now; long max_age=0; FILE *in,*out=NULL; sscanf("$Revision$", "%*s %s", revision); fprintf(stderr,"\nFILELIST v%s-%s (rev %s) - Generate Synchronet File " "Directory Lists\n" ,FILELIST_VER ,PLATFORM_DESC ,revision ); if(argc<2 || strcmp(argv[1],"-?")==0 || strcmp(argv[1],"-help")==0 || strcmp(argv[1],"--help")==0 || strcmp(argv[1],"/?")==0 ) { printf("\n usage: FILELIST <dir_code or - for ALL> [switches] [outfile]\n"); printf("\n"); printf("switches: -lib name All directories of specified library\n"); printf(" -not code Exclude specific directory\n"); printf(" -new days Include only new files in listing (days since upload)\n"); printf(" -cat Concatenate to existing outfile\n"); printf(" -pad Pad filename with spaces\n"); printf(" -hdr Include directory headers\n"); printf(" -cdt Include credit value\n"); printf(" -tot Include credit totals\n"); printf(" -uln Include uploader's name\n"); printf(" -uld Include upload date\n"); printf(" -dfd Include DOS file date\n"); printf(" -dld Include download date\n"); printf(" -dls Include total downloads\n"); printf(" -nod Exclude normal descriptions\n"); printf(" -noe Exclude normal descriptions, if extended " "exists\n"); printf(" -ext Include extended descriptions\n"); printf(" -jst Justify extended descriptions under normal\n"); printf(" -+ Include extended description indicator (+)\n"); printf(" -- Include offline file indicator (-)\n"); printf(" -* Short-hand for -pad -hdr -cdt -+ --\n"); exit(0); } p=getenv("SBBSCTRL"); if(p==NULL) { printf("\nSBBSCTRL environment variable not set.\n"); printf("\nExample: SET SBBSCTRL=/sbbs/ctrl\n"); exit(1); } now=time32(NULL); memset(&scfg,0,sizeof(scfg)); scfg.size=sizeof(scfg); SAFECOPY(scfg.ctrl_dir,p); if(chdir(scfg.ctrl_dir)!=0) fprintf(stderr,"!ERROR changing directory to: %s", scfg.ctrl_dir); printf("\nLoading configuration files from %s\n",scfg.ctrl_dir); if(!load_cfg(&scfg,NULL,TRUE,error)) { fprintf(stderr,"!ERROR loading configuration files: %s\n",error); exit(1); } SAFECOPY(scfg.temp_dir,"../temp"); prep_dir(scfg.ctrl_dir, scfg.temp_dir, sizeof(scfg.temp_dir)); dirnum=libnum=-1; if(argv[1][0]=='*' || strcmp(argv[1],"-")==0) misc|=ALL; else if(argv[1][0]!='-') { strupr(argv[1]); for(i=0;i<scfg.total_dirs;i++) if(!stricmp(argv[1],scfg.dir[i]->code)) break; if(i>=scfg.total_dirs) { printf("\nDirectory code '%s' not found.\n",argv[1]); exit(1); } dirnum=i; } for(i=1;i<argc;i++) { if(!stricmp(argv[i],"-lib")) { if(dirnum!=-1) { printf("\nBoth directory code and -lib parameters were used.\n"); exit(1); } i++; if(i>=argc) { printf("\nLibrary short name must follow -lib parameter.\n"); exit(1); } strupr(argv[i]); for(j=0;j<scfg.total_libs;j++) if(!stricmp(scfg.lib[j]->sname,argv[i])) break; if(j>=scfg.total_libs) { printf("\nLibrary short name '%s' not found.\n",argv[i]); exit(1); } libnum=j; } else if(!stricmp(argv[i],"-not")) { if(nots>=MAX_NOTS) { printf("\nMaximum number of -not options (%u) exceeded.\n" ,MAX_NOTS); exit(1); } i++; if(i>=argc) { printf("\nDirectory internal code must follow -not parameter.\n"); exit(1); } sprintf(not[nots++],"%.8s",argv[i]); } else if(!stricmp(argv[i],"-all")) { if(dirnum!=-1) { printf("\nBoth directory code and -all parameters were used.\n"); exit(1); } if(libnum!=-1) { printf("\nBoth library name and -all parameters were used.\n"); exit(1); } misc|=ALL; } else if(!stricmp(argv[i],"-new")) { i++; if(i>=argc) { printf("\nDays since upload must follow -new parameter.\n"); exit(1); } max_age=strtol(argv[i],NULL,0); } else if(!stricmp(argv[i],"-pad")) misc|=PAD; else if(!stricmp(argv[i],"-cat")) omode=O_WRONLY|O_CREAT|O_APPEND; else if(!stricmp(argv[i],"-hdr")) misc|=HDR; else if(!stricmp(argv[i],"-cdt")) misc|=CDT_; else if(!stricmp(argv[i],"-tot")) misc|=TOT; else if(!stricmp(argv[i],"-ext")) misc|=EXT; else if(!stricmp(argv[i],"-uln")) misc|=ULN; else if(!stricmp(argv[i],"-uld")) misc|=ULD; else if(!stricmp(argv[i],"-dld")) misc|=DLD; else if(!stricmp(argv[i],"-dfd")) misc|=DFD; else if(!stricmp(argv[i],"-dls")) misc|=DLS; else if(!stricmp(argv[i],"-nod")) misc|=NOD; else if(!stricmp(argv[i],"-jst")) misc|=(EXT|JST); else if(!stricmp(argv[i],"-noe")) misc|=(EXT|NOE); else if(!stricmp(argv[i],"-+")) misc|=PLUS; else if(!stricmp(argv[i],"--")) misc|=MINUS; else if(!stricmp(argv[i],"-*")) misc|=(HDR|PAD|CDT_|PLUS|MINUS); else if(i!=1) { if(argv[i][0]=='*' || strcmp(argv[i],"-")==0) { misc|=AUTO; continue; } if((j=nopen(argv[i],omode))==-1) { printf("\nError opening/creating %s for output.\n",argv[i]); exit(1); } out=fdopen(j,"wb"); } } if(!out && !(misc&AUTO)) { printf("\nOutput file not specified, using FILES.BBS in each " "directory.\n"); misc|=AUTO; } for(i=0;i<scfg.total_dirs;i++) { dir_files=0; if(!(misc&ALL) && i!=dirnum && scfg.dir[i]->lib!=libnum) continue; for(j=0;j<nots;j++) if(!stricmp(not[j],scfg.dir[i]->code)) break; if(j<nots) continue; if(misc&AUTO && scfg.dir[i]->seqdev) /* CD-ROM */ continue; printf("\n%-*s %s",LEN_GSNAME,scfg.lib[scfg.dir[i]->lib]->sname,scfg.dir[i]->lname); sprintf(str,"%s%s.ixb",scfg.dir[i]->data_dir,scfg.dir[i]->code); if((file=nopen(str,O_RDONLY))==-1) continue; l=filelength(file); if(misc&AUTO) { sprintf(str,"%sFILES.BBS",scfg.dir[i]->path); if((j=nopen(str,omode))==-1) { printf("\nError opening/creating %s for output.\n",str); exit(1); } out=fdopen(j,"wb"); } if(misc&HDR) { sprintf(fname,"%-*s %-*s Files: %4lu" ,LEN_GSNAME,scfg.lib[scfg.dir[i]->lib]->sname ,LEN_SLNAME,scfg.dir[i]->lname,l/F_IXBSIZE); fprintf(out,"%s\r\n",fname); memset(fname,'-',strlen(fname)); fprintf(out,"%s\r\n",fname); } if(!l) { close(file); if(misc&AUTO) fclose(out); continue; } if((ixbbuf=(uchar *)malloc(l))==NULL) { close(file); if(misc&AUTO) fclose(out); printf("\7ERR_ALLOC %s %lu\n",str,l); continue; } if(read(file,ixbbuf,l)!=(int)l) { close(file); if(misc&AUTO) fclose(out); printf("\7ERR_READ %s %lu\n",str,l); free((char *)ixbbuf); continue; } close(file); sprintf(str,"%s%s.dat",scfg.dir[i]->data_dir,scfg.dir[i]->code); if((file=nopen(str,O_RDONLY))==-1) { printf("\7ERR_OPEN %s %u\n",str,O_RDONLY); free((char *)ixbbuf); if(misc&AUTO) fclose(out); continue; } datbuflen=filelength(file); if((datbuf=malloc(datbuflen))==NULL) { close(file); printf("\7ERR_ALLOC %s %lu\n",str,datbuflen); free((char *)ixbbuf); if(misc&AUTO) fclose(out); continue; } if(read(file,datbuf,datbuflen)!=(int)datbuflen) { close(file); printf("\7ERR_READ %s %lu\n",str,datbuflen); free((char *)datbuf); free((char *)ixbbuf); if(misc&AUTO) fclose(out); continue; } close(file); m=0L; while(m<l && !ferror(out)) { for(j=0;j<12 && m<l;j++) if(j==8) str[j]=ixbbuf[m]>' ' ? '.' : ' '; else str[j]=ixbbuf[m++]; /* Turns FILENAMEEXT into FILENAME.EXT */ str[j]=0; unpadfname(str,fname); n=ixbbuf[m]|((long)ixbbuf[m+1]<<8)|((long)ixbbuf[m+2]<<16); uld=(ixbbuf[m+3]|((long)ixbbuf[m+4]<<8)|((long)ixbbuf[m+5]<<16) |((long)ixbbuf[m+6]<<24)); dld=(ixbbuf[m+7]|((long)ixbbuf[m+8]<<8)|((long)ixbbuf[m+9]<<16) |((long)ixbbuf[m+10]<<24)); m+=11; if(n>=datbuflen /* index out of bounds */ || datbuf[n+F_DESC+LEN_FDESC]!=CR) { /* corrupted data */ fprintf(stderr,"\n\7%s%s is corrupted!\n" ,scfg.dir[i]->data_dir,scfg.dir[i]->code); exit(-1); } if(max_age && ((now - uld) / (24*60*60) > max_age)) continue; fprintf(out,"%-12.12s",misc&PAD ? str : fname); total_files++; dir_files++; if(misc&PLUS && datbuf[n+F_MISC]!=ETX && (datbuf[n+F_MISC]-' ')&FM_EXTDESC) fputc('+',out); else fputc(' ',out); desc_off=12; if(misc&(CDT_|TOT)) { getrec((char *)&datbuf[n],F_CDT,LEN_FCDT,str); cdt=atol(str); total_cdt+=cdt; if(misc&CDT_) { fprintf(out,"%7lu",cdt); desc_off+=7; } } if(misc&MINUS) { sprintf(str,"%s%s",scfg.dir[i]->path,fname); if(!fexistcase(str)) fputc('-',out); else fputc(' ',out); } else fputc(' ',out); desc_off++; if(misc&DFD) { sprintf(str,"%s%s",scfg.dir[i]->path,fname); fprintf(out,"%s ",unixtodstr(&scfg,(time32_t)fdate(str),str)); desc_off+=9; } if(misc&ULD) { fprintf(out,"%s ",unixtodstr(&scfg,uld,str)); desc_off+=9; } if(misc&ULN) { getrec((char *)&datbuf[n],F_ULER,25,str); fprintf(out,"%-25s ",str); desc_off+=26; } if(misc&DLD) { fprintf(out,"%s ",unixtodstr(&scfg,dld,str)); desc_off+=9; } if(misc&DLS) { getrec((char *)&datbuf[n],F_TIMESDLED,5,str); j=atoi(str); fprintf(out,"%5u ",j); desc_off+=6; } if(datbuf[n+F_MISC]!=ETX && (datbuf[n+F_MISC]-' ')&FM_EXTDESC) ext=1; /* extended description exists */ else ext=0; /* it doesn't */ if(!(misc&NOD) && !(misc&NOE && ext)) { getrec((char *)&datbuf[n],F_DESC,LEN_FDESC,str); fprintf(out,"%s",str); } if(misc&EXT && ext) { /* Print ext desc */ sprintf(str,"%s%s.exb",scfg.dir[i]->data_dir,scfg.dir[i]->code); if(!fexist(str)) continue; if((j=nopen(str,O_RDONLY))==-1) { printf("\7ERR_OPEN %s %u\n",str,O_RDONLY); continue; } if((in=fdopen(j,"rb"))==NULL) { close(j); continue; } fseek(in,(n/F_LEN)*512L,SEEK_SET); lines=0; if(!(misc&NOE)) { fprintf(out,"\r\n"); lines++; } while(!feof(in) && !ferror(in) && ftell(in)<(long)((n/F_LEN)+1)*512L) { if(!fgets(str,128,in) || !str[0]) break; stripctrlz(str); if(lines) { if(misc&JST) fprintf(out,"%*s",desc_off,""); fputc(' ',out); /* indent one character */ } fprintf(out,"%s",str); lines++; } fclose(in); } fprintf(out,"\r\n"); } free((char *)datbuf); free((char *)ixbbuf); if(dir_files) fprintf(out,"\r\n"); /* blank line at end of dir */ if(misc&AUTO) fclose(out); } if(misc&TOT && !(misc&AUTO)) fprintf(out,"TOTALS\n------\n%lu credits/bytes in %lu files.\r\n" ,total_cdt,total_files); printf("\nDone.\n"); return(0); }
int main(int argc, char **argv) { GtkWidget *w; int i; char str[1025]; char flags[33]; GtkListStore *lstore = NULL; GtkTreeSelection *lsel; char glade_path[MAX_PATH+1]; char *p; gtk_init(&argc, &argv); glade_init(); /* Read .cfg files here */ memset(&cfg,0,sizeof(cfg)); p=getenv("SBBSCTRL"); if(p==NULL) { display_message("Environment Error","SBBSCTRL not set","gtk-dialog-error"); return(-1); } SAFECOPY(cfg.ctrl_dir, p); prep_dir("",cfg.ctrl_dir,sizeof(cfg.ctrl_dir)); if(!isdir(cfg.ctrl_dir)) { display_message("Environment Error","SBBSCTRL does not point to a directory","gtk-dialog-error"); return(-1); } cfg.size=sizeof(cfg); if(!load_cfg(&cfg, NULL, TRUE, str)) { fprintf(stderr,"Cannot load configuration data (%s)",str); return; } /* load the interface */ strcpy(glade_path, argv[0]); strcpy(getfname(glade_path), "gtkuserlist.glade"); lxml = glade_xml_new(glade_path, "UserListWindow", NULL); if(lxml==NULL) { fprintf(stderr,"Could not locate UserListWindow widget\n"); return; } /* connect the signals in the interface */ glade_xml_signal_autoconnect(lxml); /* Set up user list */ w=glade_xml_get_widget(lxml, "lUserList"); lstore = gtk_list_store_new(17 ,G_TYPE_INT ,G_TYPE_STRING ,G_TYPE_STRING ,G_TYPE_INT ,G_TYPE_INT ,G_TYPE_STRING ,G_TYPE_STRING ,G_TYPE_STRING ,G_TYPE_STRING ,G_TYPE_STRING ,G_TYPE_STRING ,G_TYPE_STRING ,G_TYPE_INT ,G_TYPE_STRING ,G_TYPE_STRING ,G_TYPE_INT ,G_TYPE_INT ); gtk_tree_view_set_model(GTK_TREE_VIEW(w), GTK_TREE_MODEL(lstore)); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,0 ,"Num" ,gtk_cell_renderer_text_new() ,"text" ,0 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 0 ) ,0 ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,1 ,"Alias" ,gtk_cell_renderer_text_new() ,"text" ,1 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 1 ) ,1 ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,2 ,"Name" ,gtk_cell_renderer_text_new() ,"text" ,2 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 2 ) ,2 ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,3 ,"Lev" ,gtk_cell_renderer_text_new() ,"text" ,3 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 3 ) ,3 ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,4 ,"Age" ,gtk_cell_renderer_text_new() ,"text" ,4 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 4 ) ,4 ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,5 ,"Sex" ,gtk_cell_renderer_text_new() ,"text" ,5 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 5 ) ,5 ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,6 ,"Location" ,gtk_cell_renderer_text_new() ,"text" ,6 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 6 ) ,6 ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,7 ,"Protocol" ,gtk_cell_renderer_text_new() ,"text" ,7 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 7 ) ,7 ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,8 ,"Address" ,gtk_cell_renderer_text_new() ,"text" ,8 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 8 ) ,8 ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,9 ,"Host Name" ,gtk_cell_renderer_text_new() ,"text" ,9 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 9 ) ,9 ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,10 ,"Phone" ,gtk_cell_renderer_text_new() ,"text" ,10 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 10 ) ,10 ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,11 ,"Email" ,gtk_cell_renderer_text_new() ,"text" ,11 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 11 ) ,11 ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,12 ,"Logons" ,gtk_cell_renderer_text_new() ,"text" ,12 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 12 ) ,12 ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,13 ,"First On" ,gtk_cell_renderer_text_new() ,"text" ,13 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 13 ) ,15 ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW(w) ,14 ,"Last On" ,gtk_cell_renderer_text_new() ,"text" ,14 ,NULL); gtk_tree_view_column_set_sort_column_id( gtk_tree_view_get_column( GTK_TREE_VIEW(w), 14 ) ,16 ); lsel = gtk_tree_view_get_selection (GTK_TREE_VIEW (w)); gtk_tree_selection_set_mode (lsel, GTK_SELECTION_MULTIPLE); g_signal_connect (G_OBJECT (lsel), "changed", G_CALLBACK (update_userlist_sensitive_callback), NULL); /* Set up users */ update_userlist_callback(GTK_WIDGET(w), NULL); update_userlist_sensitive_callback(lsel, NULL); /* Set up quick validation values */ w=glade_xml_get_widget(lxml, "cQuickValidate"); gtk_combo_box_set_active(GTK_COMBO_BOX(w), 0); for(i=0;i<10;i++) { sprintf(str,"%d SL: %-2d F1: %s",i,cfg.val_level[i],ltoaf(cfg.val_flags1[i],flags)); gtk_combo_box_append_text(GTK_COMBO_BOX(w), str); } /* Show 'er to the user */ gtk_window_present(GTK_WINDOW(glade_xml_get_widget(lxml, "UserListWindow"))); gtk_main(); }