As requested some time ago, I added three new functions in the API of the Time Module, to easily initialize pdf_time_t variables with unix-timescale epochs and w32-specific Filetime-timescale epochs (http://msdn.microsoft.com/en-us/library/ms724290(VS.85).aspx).
Find attached the patch for the new API. If agreed by all, I'll start the development tomorrow. Cheers, -Aleksander # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: [EMAIL PROTECTED] # target_branch: file:///home/aleksander/Development/libgnupdf_repo\ # /trunk/ # testament_sha1: f98b1d78e68ddc250c7359b362c564c0073e6876 # timestamp: 2008-07-25 20:47:22 +0200 # base_revision_id: [EMAIL PROTECTED] # # Begin patch === modified file 'ChangeLog' --- ChangeLog 2008-07-25 13:30:00 +0000 +++ ChangeLog 2008-07-25 18:46:20 +0000 @@ -1,3 +1,12 @@ +2008-07-25 Aleksander Morgado <[EMAIL PROTECTED]> + + * doc/gnupdf.texi (Platform-specific functions): New section including + the w32-specific `pdf_time_w32_set_from_filetime' function, to fastly + set the pdf_time_t to a given filetime-timescale epoch. + (Managing Time Values): New functions `pdf_time_set_from_i32' and + `pdf_time_set' in order to fastly set the pdf_time_t variable to a given + unix-timescale epoch. + 2008-07-25 Jose E. Marchesi <[EMAIL PROTECTED]> * src/base/pdf-list.h: Inline semantics in MacosX. === modified file 'doc/gnupdf.texi' --- doc/gnupdf.texi 2008-07-18 07:41:04 +0000 +++ doc/gnupdf.texi 2008-07-25 18:46:20 +0000 @@ -4554,6 +4554,7 @@ * Managing Time Span Values:: * Time Span Comparison:: * Calendar Spans Management:: +* Platform-specific functions:: @end menu @node Time Related Data Types @@ -4782,6 +4783,69 @@ @end table @end deftypefun + [EMAIL PROTECTED] pdf_status_t pdf_time_set_from_i32 (pdf_time_t @var{time_var}, pdf_i32_t @var{seconds}) +This function will initialize @var{time_var} to the given Unix time (seconds since January 1st 1970). +The time is represented as a 32-bit integer. + [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Parameters [EMAIL PROTECTED] @var [EMAIL PROTECTED] time_var +The time variable to set. Should be a properly create time variable. [EMAIL PROTECTED] seconds +Seconds since January 1st 1970, 32-bit value. [EMAIL PROTECTED] table [EMAIL PROTECTED] Returns +A status value: [EMAIL PROTECTED] @code [EMAIL PROTECTED] PDF_OK +The operation succeeded. [EMAIL PROTECTED] table [EMAIL PROTECTED] Usage example [EMAIL PROTECTED] +pdf_time_t mytime; + +mytime = pdf_time_new (); + +pdf_time_set_from_i32(mytime, 1217009657); + [EMAIL PROTECTED] example [EMAIL PROTECTED] table [EMAIL PROTECTED] deftypefun + [EMAIL PROTECTED] pdf_status_t pdf_time_set (pdf_time_t @var{time_var}, pdf_i64_t @var{seconds}) +This function will initialize @var{time_var} to the given Unix time (seconds since January 1st 1970). +The time is represented as a pdf_i64_t integer. + [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Parameters [EMAIL PROTECTED] @var [EMAIL PROTECTED] time_var +The time variable to set. Should be a properly create time variable. [EMAIL PROTECTED] seconds +Seconds since January 1st 1970, pdf_i64_t variable. [EMAIL PROTECTED] table [EMAIL PROTECTED] Returns +A status value: [EMAIL PROTECTED] @code [EMAIL PROTECTED] PDF_OK +The operation succeeded. [EMAIL PROTECTED] table [EMAIL PROTECTED] Usage example [EMAIL PROTECTED] +pdf_time_t mytime; +pdf_i64_t epoch = pdf_i64_new(0,1217009657); +mytime = pdf_time_new (); + +pdf_time_set(mytime, epoch); + [EMAIL PROTECTED] example [EMAIL PROTECTED] table [EMAIL PROTECTED] deftypefun + + + @deftypefun pdf_status_t pdf_time_add_cal_span (pdf_time_t @var{time_var}, const struct pdf_time_cal_span_s [EMAIL PROTECTED]) Add the time span represented by the calendar span under the address in @var{p_cal_span} to @var{time_var}. @@ -5912,6 +5976,43 @@ @end table @end deftypefun [EMAIL PROTECTED] Platform-specific functions [EMAIL PROTECTED] Platform-specific functions + [EMAIL PROTECTED] pdf_status_t pdf_time_w32_set_from_filetime (pdf_time_t @var{time_var}, pdf_i64_t @var{filetime}) +This function will initialize @var{time_var} to the given Filetime (100-nanosecond intervals since January 1st 1601). + +This function is only available in Windows OS. + [EMAIL PROTECTED] @strong [EMAIL PROTECTED] Parameters [EMAIL PROTECTED] @var [EMAIL PROTECTED] time_var +The time variable to set. Should be a properly create time variable. [EMAIL PROTECTED] seconds +100-nanosecond intervals since 1 January 1601, pdf_i64_t variable. [EMAIL PROTECTED] table [EMAIL PROTECTED] Returns +A status value: [EMAIL PROTECTED] @code [EMAIL PROTECTED] PDF_OK +The operation succeeded. [EMAIL PROTECTED] table [EMAIL PROTECTED] Usage example [EMAIL PROTECTED] +pdf_time_t mytime; +pdf_i64_t filetime; +mytime = pdf_time_new (); + +/* do stuff to get the File Time */ + +pdf_time_w32_set_from_filetime(mytime, filetime); + [EMAIL PROTECTED] example [EMAIL PROTECTED] table [EMAIL PROTECTED] deftypefun + + @node The Filesystem Module @section The Filesystem Module # Begin bundle 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 JFOFCQWuquTA