| version 1.12, 2002/04/21 10:08:40 |
version 1.13, 2002/04/24 22:03:54 |
| Line 54 cfg_cfgfile_get_next_opt(con) |
|
| Line 54 cfg_cfgfile_get_next_opt(con) |
|
| { |
{ |
| char *buf; |
char *buf; |
| int ret_val; |
int ret_val; |
| register int ret; |
|
| |
con->error_code = CFG_OK; |
| |
|
| if (con->fhandle == NULL) { |
if (con->fhandle == NULL) { |
| con->fhandle = con->filename != NULL |
con->fhandle = con->filename != NULL |
| ? fopen(con->filename, "r") |
? fopen(con->filename, "r") |
| : NULL; |
: NULL; |
| if (con->fhandle == NULL) |
if (con->fhandle == NULL) { |
| return CFG_ERROR_FILE_NOT_FOUND; |
con->error_code = CFG_ERROR_FILE_NOT_FOUND; |
| |
return con->error_code; |
| |
} |
| |
|
| if (con->flags & CFG_FILE_LINE_USAGE) { |
if (con->flags & CFG_FILE_LINE_USAGE) { |
| if (con->begin_pos > 0) { |
if (con->begin_pos > 0) { |
| Line 71 cfg_cfgfile_get_next_opt(con) |
|
| Line 74 cfg_cfgfile_get_next_opt(con) |
|
| while (con->cur_idx_tmp < con->begin_pos) { |
while (con->cur_idx_tmp < con->begin_pos) { |
| switch (fgetc(con->fhandle)) { |
switch (fgetc(con->fhandle)) { |
| case EOF: |
case EOF: |
| return CFG_ERROR_SEEK_ERROR; |
con->error_code = CFG_ERROR_SEEK_ERROR; |
| |
return con->error_code; |
| case '\n': |
case '\n': |
| con->cur_idx_tmp++; |
con->cur_idx_tmp++; |
| } |
} |
| Line 80 cfg_cfgfile_get_next_opt(con) |
|
| Line 84 cfg_cfgfile_get_next_opt(con) |
|
| } |
} |
| else { |
else { |
| if (con->begin_pos > 0 && |
if (con->begin_pos > 0 && |
| fseek(con->fhandle, con->begin_pos, SEEK_SET) != 0) |
fseek(con->fhandle, con->begin_pos, SEEK_SET) != 0) { |
| return CFG_ERROR_SEEK_ERROR; |
con->error_code = CFG_ERROR_SEEK_ERROR; |
| |
return con->error_code; |
| |
} |
| } |
} |
| } |
} |
| |
|
| Line 91 cfg_cfgfile_get_next_opt(con) |
|
| Line 97 cfg_cfgfile_get_next_opt(con) |
|
| con->cur_idx_tmp = 0; |
con->cur_idx_tmp = 0; |
| } |
} |
| |
|
| ret = get_multi_line(con, &buf); |
con->error_code = get_multi_line(con, &buf); |
| |
if (con->error_code != CFG_OK) { |
| if (ret != CFG_OK) { |
|
| if (buf != NULL) |
if (buf != NULL) |
| free(buf); |
free(buf); |
| |
|
| return ret; |
return con->error_code; |
| } |
} |
| |
|
| if (buf != NULL && con->file_stop_prefix != NULL) { |
if (buf != NULL && con->file_stop_prefix != NULL) { |
| if (buf == strdyn_str2(buf, con->file_stop_prefix, NULL)) { |
if (buf == strdyn_str2(buf, con->file_stop_prefix, NULL)) { |
| __cfg_free_currents(con); |
__cfg_free_currents(con); |
| con->cur_opt = buf; |
con->cur_opt = buf; |
| return CFG_ERR_STOP_STR; |
con->error_code = CFG_ERR_STOP_STR; |
| |
return con->error_code; |
| } |
} |
| } |
} |
| |
|
| Line 113 cfg_cfgfile_get_next_opt(con) |
|
| Line 119 cfg_cfgfile_get_next_opt(con) |
|
| if (buf != NULL) |
if (buf != NULL) |
| free(buf); |
free(buf); |
| |
|
| return CFG_OK; |
return con->error_code; /* allways CFG_OK */ |
| } |
} |
| |
|
| __cfg_free_currents(con); |
__cfg_free_currents(con); |
| |
|
| if (__cfg_cfgfile_set_currents(con, buf) == 0) |
if (__cfg_cfgfile_set_currents(con, buf) == 0) { |
| return CFG_ERROR_NOMEM; |
con->error_code = CFG_ERROR_NOMEM; |
| |
return con->error_code; |
| |
} |
| |
|
| free(buf); |
free(buf); |
| |
|
| ret = __cfg_process_currents(con, &ret_val, NULL); |
con->error_code = __cfg_process_currents(con, &ret_val, NULL); |
| |
if (con->error_code != CFG_OK) |
| if (ret != CFG_OK) |
return con->error_code; |
| return ret; |
|
| |
|
| if (ret_val > 0) |
if (ret_val > 0) |
| return ret_val; |
return ret_val; |
| } |
} |
| |
|
| return 0; |
return con->error_code; /* CFG_OK */ |
| } |
} |
| |
|
| /* |
/* |
| Line 149 get_multi_line(con, buf) |
|
| Line 156 get_multi_line(con, buf) |
|
| const CFG_CONTEXT con; |
const CFG_CONTEXT con; |
| char **buf; |
char **buf; |
| { |
{ |
| register char **ar = NULL; |
register char **ar = NULL; |
| register char *my_buf = NULL; |
register char *my_buf = NULL; |
| register int state = 0; |
register int state = 0; |
| |
|
| *buf = NULL; |
*buf = NULL; |
| |
|