Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MAINT: Fix return type errors from macros #658

Merged
merged 1 commit into from
Jul 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/libAtoms/libatoms.h
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,11 @@
#define PASS_ERROR if (error != NULL && *error != ERROR_NONE) { error_h_line = __LINE__; c_push_error_(__FILE__, &error_h_line, error, strlen(__FILE__)); return; }
#define CLEAR_ERROR c_error_clear_stack_();

#define RAISE_ERROR_INT(info, ...) sprintf(error_h_info, info, ## __VA_ARGS__ ); error_h_line = __LINE__; error_h_kind = ERROR_UNSPECIFIED; c_push_error_with_info_(error_h_info, __FILE__, &error_h_line, &error_h_kind, strlen(error_h_info), strlen(__FILE__)); if (error != NULL) { *error = error_h_kind; return -1; } else c_error_abort_(error)
#define RAISE_ERROR_WITH_KIND_INT(kind, info, ...) sprintf(error_h_info, info, ## __VA_ARGS__ ); error_h_line = __LINE__; error_h_kind = kind; c_push_error_with_info_(error_h_info, __FILE__, &error_h_line, &error_h_kind, strlen(error_h_info), strlen(__FILE__)); if (error != NULL) { *error = error_h_kind; return -1; } else c_error_abort_(error)
#define PASS_ERROR_INT if (error != NULL && *error != ERROR_NONE) { error_h_line = __LINE__; c_push_error_(__FILE__, &error_h_line, error, strlen(__FILE__)); return -1; }
#define RAISE_ERROR_WITH_KIND_CHAR(kind, info, ...) sprintf(error_h_info, info, ## __VA_ARGS__ ); error_h_line = __LINE__; error_h_kind = kind; c_push_error_with_info_(error_h_info, __FILE__, &error_h_line, &error_h_kind, strlen(error_h_info), strlen(__FILE__)); if (error != NULL) { *error = error_h_kind; return '\0'; } else c_error_abort_(error)

extern void c_push_error_with_info_(char*, char*, int*, int*, size_t, size_t);
extern void c_push_error_(char*, int*, int*, size_t);
extern void c_error_abort_(int *);
Expand Down
34 changes: 17 additions & 17 deletions src/libAtoms/xyz.c
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ int xyz_find_index(char *fname, char *indexname, int *do_update, int *error) {
strncat(indexname, ".idx", LINESIZE-strlen(indexname)-1);

if (access(fname, R_OK) != 0) {
RAISE_ERROR_WITH_KIND(ERROR_IO, "Cannot access xyz file %s\n", fname);
RAISE_ERROR_WITH_KIND_INT(ERROR_IO, "Cannot access xyz file %s\n", fname);
}

idx_exists = access(indexname, R_OK) == 0;
Expand All @@ -200,10 +200,10 @@ int xyz_find_index(char *fname, char *indexname, int *do_update, int *error) {
*do_update = 1;
if (idx_exists) {
if (stat(fname, &xyz_stat) != 0) {
RAISE_ERROR_WITH_KIND(ERROR_IO, "Cannot stat xyz file %s\n", fname);
RAISE_ERROR_WITH_KIND_INT(ERROR_IO, "Cannot stat xyz file %s\n", fname);
}
if (stat(indexname, &idx_stat) != 0) {
RAISE_ERROR_WITH_KIND(ERROR_IO, "Cannot stat xyz.idx file %s\n", fname);
RAISE_ERROR_WITH_KIND_INT(ERROR_IO, "Cannot stat xyz.idx file %s\n", fname);
}
*do_update = xyz_stat.st_mtime > idx_stat.st_mtime;
}
Expand All @@ -221,16 +221,16 @@ int xyz_read_index(char *indexname, long **frames, int **atoms, int *frames_arra
debug("xyz_read_index: reading XYZ index from file %s\n", indexname);
index = fopen(indexname, "r");
if (index == NULL) {
RAISE_ERROR_WITH_KIND(ERROR_IO, "Index file %s cannot be opened\n", indexname);
RAISE_ERROR_WITH_KIND_INT(ERROR_IO, "Index file %s cannot be opened\n", indexname);
}
if (!fgets(linebuffer,LINESIZE,index)) {
RAISE_ERROR_WITH_KIND(ERROR_IO, "Index file %s is empty\n",indexname);
RAISE_ERROR_WITH_KIND_INT(ERROR_IO, "Index file %s is empty\n",indexname);
}
sscanf(linebuffer, "%d", &nframes);
realloc_frames(frames, atoms, frames_array_size, nframes+2);
for (i=0; i<=nframes; i++) {
if (!fgets(linebuffer,LINESIZE,index)) {
RAISE_ERROR_WITH_KIND(ERROR_IO, "Premature end of indexfile %s\n",indexname);
RAISE_ERROR_WITH_KIND_INT(ERROR_IO, "Premature end of indexfile %s\n",indexname);
}
sscanf(linebuffer, "%ld %d", &(*frames)[i], &(*atoms)[i]);
debug("index %ld %d\n", (*frames)[i], (*atoms)[i]);
Expand All @@ -247,7 +247,7 @@ int xyz_update_index(char *fname, char *indexname, long **frames, int **atoms, i

in = fopen(fname, "r");
if (in == NULL) {
RAISE_ERROR_WITH_KIND(ERROR_IO, "xyz_update_index: cannot open %s for reading", fname);
RAISE_ERROR_WITH_KIND_INT(ERROR_IO, "xyz_update_index: cannot open %s for reading", fname);
}

if (nframes != 0) {
Expand Down Expand Up @@ -278,7 +278,7 @@ int xyz_update_index(char *fname, char *indexname, long **frames, int **atoms, i
realloc_frames(frames, atoms, frames_array_size, nframes+2);
(*frames)[nframes] = ftell(in)-strlen(linebuffer);
if (sscanf(linebuffer, "%d", &natoms) != 1) {
RAISE_ERROR_WITH_KIND(ERROR_IO, "xyz_find_frames: malformed XYZ file %s at frame %d\n",fname,nframes);
RAISE_ERROR_WITH_KIND_INT(ERROR_IO, "xyz_find_frames: malformed XYZ file %s at frame %d\n",fname,nframes);
}

(*atoms)[nframes] = natoms;
Expand Down Expand Up @@ -343,24 +343,24 @@ int xyz_find_frames(char *fname, long **frames, int **atoms, int *frames_array_s
INIT_ERROR;

got_index = xyz_find_index(fname, indexname, &do_update, error);
PASS_ERROR;
PASS_ERROR_INT;

nframes = 0;
if (got_index) {
nframes = xyz_read_index(indexname, frames, atoms, frames_array_size, error);
PASS_ERROR;
PASS_ERROR_INT;
}

if (!got_index || do_update) {
nframes = xyz_update_index(fname, indexname, frames, atoms, frames_array_size, nframes, error);
PASS_ERROR;
PASS_ERROR_INT;

if (nframes == 0) {
RAISE_ERROR("xyz_find_frames: empty file!");
RAISE_ERROR_INT("xyz_find_frames: empty file!");
}

xyz_write_index(indexname, frames, atoms, frames_array_size, nframes, error);
PASS_ERROR;
PASS_ERROR_INT;
}

debug("xyz_find_frames: %s: found %d complete frames\n", fname, nframes);
Expand Down Expand Up @@ -410,7 +410,7 @@ char* get_line(char *linebuffer, int string, int string_length, char *orig_strin
*line_offset = 0;
if (string) {
if (*stringp == '\0' || (string_length != 0 && (stringp-orig_stringp >= string_length))) {
RAISE_ERROR_WITH_KIND(ERROR_IO_EOF, info);
RAISE_ERROR_WITH_KIND_CHAR(ERROR_IO_EOF, info);
}
*prev_stringp = stringp;
while (*stringp != '\n' && *stringp != '\0' && (string_length == 0 || stringp-orig_stringp < string_length)) stringp++;
Expand All @@ -422,20 +422,20 @@ char* get_line(char *linebuffer, int string, int string_length, char *orig_strin
if (strchr(linebuffer, ' ') != NULL) {
*line_offset = strchr(linebuffer, ' ')+1-linebuffer;
} else {
RAISE_ERROR_WITH_KIND(ERROR_IO, "cannot strip prefix from line <%s>", linebuffer);
RAISE_ERROR_WITH_KIND_CHAR(ERROR_IO, "cannot strip prefix from line <%s>", linebuffer);
}
}
return stringp;
} else {
if (!fgets(linebuffer,LINESIZE,in)) {
RAISE_ERROR_WITH_KIND(ERROR_IO_EOF, info);
RAISE_ERROR_WITH_KIND_CHAR(ERROR_IO_EOF, info);
}
linebuffer[strlen(linebuffer)-1] = '\0';
if (strip_prefix) {
if (strchr(linebuffer, ' ') != NULL) {
*line_offset = strchr(linebuffer, ' ')+1-linebuffer;
} else {
RAISE_ERROR_WITH_KIND(ERROR_IO, "cannot strip prefix from line <%s>", linebuffer);
RAISE_ERROR_WITH_KIND_CHAR(ERROR_IO, "cannot strip prefix from line <%s>", linebuffer);
}
//debug("line = <%s>\n", linebuffer);
}
Expand Down
Loading