94 |
} |
} |
95 |
|
|
96 |
static char * |
static char * |
97 |
get_pr_path (const DatabaseInfo database, PR *pr, const char *prnum, |
get_pr_path (const DatabaseInfo database, PR *pr, const char *prnum) |
|
ErrorDesc *err) |
|
98 |
{ |
{ |
99 |
char *path = NULL; |
char *path = NULL; |
100 |
const char *category = NULL; |
const char *category = NULL; |
|
char *categoryFromIndex = NULL; |
|
101 |
|
|
102 |
if (pr != NULL) |
if (pr != NULL) |
103 |
{ |
{ |
104 |
category = field_value (pr, CATEGORY (database)); |
category = field_value (pr, CATEGORY (database)); |
105 |
} |
} |
|
else |
|
|
{ |
|
|
categoryFromIndex = getCategoryFromIndex (database, prnum, err); |
|
|
category = categoryFromIndex; |
|
|
} |
|
106 |
|
|
107 |
if (category != NULL) |
if (category != NULL) |
108 |
{ |
{ |
109 |
asprintf (&path, "%s/%s/%s", databaseDir (database), category, prnum); |
asprintf (&path, "%s/%s/%s", databaseDir (database), category, prnum); |
|
if (categoryFromIndex != NULL) |
|
|
{ |
|
|
free (categoryFromIndex); |
|
|
} |
|
110 |
} |
} |
111 |
|
|
112 |
return path; |
return path; |
233 |
{ |
{ |
234 |
PR *pr = NULL; |
PR *pr = NULL; |
235 |
PR *index_pr = get_pr_from_index (database, prnum, err); |
PR *index_pr = get_pr_from_index (database, prnum, err); |
236 |
char *path = get_pr_path (database, index_pr, prnum, err); |
char *path = get_pr_path (database, index_pr, prnum); |
237 |
|
|
238 |
if (path != NULL) |
if (path != NULL) |
239 |
{ |
{ |
294 |
pr_exists (const DatabaseInfo database, const char *prnum, ErrorDesc *err) |
pr_exists (const DatabaseInfo database, const char *prnum, ErrorDesc *err) |
295 |
{ |
{ |
296 |
PR *pr = get_pr_from_index (database, prnum, err); |
PR *pr = get_pr_from_index (database, prnum, err); |
297 |
char *path = get_pr_path (database, pr, prnum, err); |
char *path = get_pr_path (database, pr, prnum); |
298 |
int res = 0; |
int res = 0; |
299 |
if (path != NULL) |
if (path != NULL) |
300 |
{ |
{ |
557 |
char *path = NULL; |
char *path = NULL; |
558 |
|
|
559 |
pr = get_pr_from_index (database, prnum, err); |
pr = get_pr_from_index (database, prnum, err); |
560 |
path = get_pr_path (database, pr, prnum, err); |
path = get_pr_path (database, pr, prnum); |
561 |
|
|
562 |
if (path == NULL || !pr_file_readable (path, err)) |
if (path == NULL || !pr_file_readable (path, err)) |
563 |
{ |
{ |