Hi, Attached is the merge directive for pdf_fsys_disk_item_p.
Interesting changes from the last revision include, adding proper braces (I'm still learning this GNU style ;)), using POSIX only commands to create the function and thus avoiding having #ifdefs to do the same thing (Thank Microsoft for adding POSXI) and overall simplification of the code.
Note because I used the POSIX fopen, Windows should handle relative paths just fine and I verified this with my own little simple program.
-Zac
# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: [EMAIL PROTECTED] # target_branch: http://bzr.savannah.gnu.org/r/pdf/libgnupdf/branches\ # /trunk/ # testament_sha1: a201be411e185ede9e5e48d8c8da4dc27ee95a9d # timestamp: 2008-07-27 10:44:35 -0700 # base_revision_id: [EMAIL PROTECTED] # # Begin patch === modified file 'ChangeLog' --- ChangeLog 2008-07-25 23:13:29 +0000 +++ ChangeLog 2008-07-26 15:20:13 +0000 @@ -1,3 +1,8 @@ +2008-07-26 Zac Brown <[EMAIL PROTECTED]> + * src/base/pdf-fsys-disk.c (pdf_fsys_disk_item_p): Add implementation + for this function. Uses POSIX compliant command for Windows instead of + FindFirstFile to minimize crossing of API's. + 2008-07-26 Jose E. Marchesi <[EMAIL PROTECTED]> * doc/gnupdf-hg.texi (Naming Functions): New section. === modified file 'src/base/pdf-fsys-disk.c' --- src/base/pdf-fsys-disk.c 2008-06-13 11:55:20 +0000 +++ src/base/pdf-fsys-disk.c 2008-07-27 17:44:08 +0000 @@ -36,6 +36,7 @@ #include <pdf-types.h> #include <pdf-error.h> #include <pdf-fsys-disk.h> +#include <pdf-text.h> #ifndef PDF_HOST_WIN32 #include <sys/statvfs.h> @@ -472,8 +473,42 @@ pdf_bool_t pdf_fsys_disk_item_p (pdf_text_t path_name) { - /* FIXME: Please implement me :D */ + pdf_char_t* ascii_path; + pdf_size_t ascii_path_len; + pdf_status_t ret_code; + FILE *file = NULL; + + if (path_name == NULL) + { + return PDF_FALSE; + } + + ret_code = pdf_text_get_host (&ascii_path, &ascii_path_len, path_name, pdf_text_get_host_encoding()); + + if (ret_code != PDF_OK) + { + goto error_cleanup; + } + + file = fopen ((char*)ascii_path, "r"); + if (file == NULL) + { + goto error_cleanup; + } + else + { + fclose (file); + } + + pdf_dealloc (ascii_path); return PDF_TRUE; + + error_cleanup: + if (ascii_path) + { + pdf_dealloc (ascii_path); + } + return PDF_FALSE; } pdf_bool_t # Begin bundle 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