📄 conf.c
字号:
/* conf.c by jiniang 2005.05.11 */#include <string.h>#include <stdio.h>#include <stdlib.h>#include "conf.h"int conf_trim(char * result,char * string){ char *ptr=string; /* trim left */ while(strchr(" \f\n\r\t\v",*ptr) && *ptr) ++ptr; strcpy(result,ptr); /* trim right */ for(ptr=result;*ptr;++ptr); for(--ptr;strchr(" \f\n\r\t\v",*ptr) && ptr!=result;--ptr) *ptr='\0'; return 0;}int conf_load(char *path,struct conf *cfg){ struct conf *pconf=(struct conf*)cfg; char string[1024]; memset(string,0,1024); FILE * file=fopen(path,"rb"); if(!file) return -1; size_t len=fread(string,1024,1,file); char *p=string; char *e=string; while(*p) { while(!(*e=='\0' || *e=='\n')) e++; char tmp[512]; memset(tmp,0,512); strncpy(tmp,p,e-p); // skip # // char *ptr=strchr(tmp,'#'); if(ptr) *ptr='\0'; // set value // char *equ=strchr(tmp,'='); if(equ) { *equ='\0'; char *name=tmp; char *value=++equ; conf_trim(pconf->name,name); conf_trim(pconf->value,value); pconf++; } p=++e; } memset(pconf,0,sizeof(struct conf)); fclose(file); return 0;}char* conf_getvalue(struct conf *cfg,char *name){ struct conf *pconf=(struct conf*)cfg; while(*(pconf->name)!='\0') { if(!strcasecmp(pconf->name,name)) return pconf->value; pconf++; } return (char*)0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -