Here is the patch:
Index: gnupdf.texi
===================================================================
RCS file: /sources/pdf/libgnupdf/doc/gnupdf.texi,v
retrieving revision 1.26
diff -u -r1.26 gnupdf.texi
--- gnupdf.texi 20 Feb 2008 10:49:55 -0000 1.26
+++ gnupdf.texi 22 Feb 2008 15:13:57 -0000
@@ -103,6 +103,163 @@
@section Error Management
+The Error module will provide procedures for error reporting to the
+client as well as for error tracing (via debug messages) to
+developers. Here we also define status types returned by most
+procedures (there are exceptions though).
+
[EMAIL PROTECTED]
+* Status types::
+* Error Reporting procedures::
+* Debugging procedures::
[EMAIL PROTECTED] menu
+
[EMAIL PROTECTED] Status types
[EMAIL PROTECTED] Status types
+
[EMAIL PROTECTED] {Data Type} pdf_status_t
+A status variable.
[EMAIL PROTECTED] deftp
+
+The following constants defines the valid values to be hold in a
[EMAIL PROTECTED] variable:
+
[EMAIL PROTECTED] {Constant} PDF_OK
+Success
[EMAIL PROTECTED] deftp
+
[EMAIL PROTECTED] {Constant} PDF_ERROR
+A serious error
[EMAIL PROTECTED] deftp
+
[EMAIL PROTECTED] {Constant} PDF_EBADDATA
+Invalid or bad arguments
[EMAIL PROTECTED] deftp
+
[EMAIL PROTECTED] {Constant} PDF_ENOMEM
+Insufficient memory
[EMAIL PROTECTED] deftp
+
[EMAIL PROTECTED] {Constant} PDF_EEOF
+End of file
[EMAIL PROTECTED] deftp
+
[EMAIL PROTECTED] {Constant} PDF_EDIVBYZERO
+Divison by zero
[EMAIL PROTECTED] deftp
+
[EMAIL PROTECTED] {Constant} PDF_ENONODE
+No node found
[EMAIL PROTECTED] deftp
+
[EMAIL PROTECTED] {Constant} PDF_EINVRANGE
+Invalid range
[EMAIL PROTECTED] deftp
+
[EMAIL PROTECTED] {Constant} PDF_ETEXTENC
+Error in text encoding
[EMAIL PROTECTED] deftp
+
[EMAIL PROTECTED] {Constant} PDF_ENOMATCH
+No matching found
[EMAIL PROTECTED] deftp
+
+This list will grow as we get closer to a mature state of development.
+
+
[EMAIL PROTECTED] Error Reporting procedures
[EMAIL PROTECTED] Error Reporting procedures
+
[EMAIL PROTECTED] void pdf_perror (pdf_status_t @var{status}, const char [EMAIL
PROTECTED])
+
+Prints the message corresponding to @var{status} to stderr followed by
@var{str}.
+
[EMAIL PROTECTED] @strong
[EMAIL PROTECTED] Parameters
[EMAIL PROTECTED] @var
[EMAIL PROTECTED] status
+status code
[EMAIL PROTECTED] str
+a user-defined message
[EMAIL PROTECTED] table
[EMAIL PROTECTED] Returns
+nothing
[EMAIL PROTECTED] Usage example
[EMAIL PROTECTED]
+pdf_status_t st;
+
+st = pdf_i64_add (dest, addend_1, addend_2);
+
+if (st != PDF_OK)
[EMAIL PROTECTED]
+ pdf_perror (st, "Couldn't do i64 addition");
[EMAIL PROTECTED]
[EMAIL PROTECTED] example
[EMAIL PROTECTED] table
[EMAIL PROTECTED] deftypefun
+
[EMAIL PROTECTED] void pdf_error (pdf_status_t @var{status}, FILE [EMAIL
PROTECTED], const char [EMAIL PROTECTED], @var{...})
+
+Prints a message with `fprintf (@var{fd}, @var{format}, ...)';
+if @var{status} is nonzero, also prints the corresponding message.
+
[EMAIL PROTECTED] @strong
[EMAIL PROTECTED] Parameters
[EMAIL PROTECTED] @var
[EMAIL PROTECTED] status
+status code
[EMAIL PROTECTED] fd
+file descriptor open for writing
[EMAIL PROTECTED] format
+string format for the message
[EMAIL PROTECTED] ...
+format's arguments
[EMAIL PROTECTED] table
[EMAIL PROTECTED] Returns
+nothing
[EMAIL PROTECTED] Usage example
[EMAIL PROTECTED]
+pdf_status_t st;
+
+st = pdf_i64_add (dest, addend_1, addend_2);
+
+if (st != PDF_OK)
[EMAIL PROTECTED]
+ pdf_error (st, logfd, "Couldn't do i64 addition");
[EMAIL PROTECTED]
[EMAIL PROTECTED] example
[EMAIL PROTECTED] table
[EMAIL PROTECTED] deftypefun
+
[EMAIL PROTECTED] Debugging procedures
[EMAIL PROTECTED] Debugging procedures
+
+For each layer there is a macro procedure defined. The file name and
+the line number at which the error ocurred is printed to stderr
+followed by @var{message}.
+
[EMAIL PROTECTED] PDF_DEBUG_BASE (message, ...)
[EMAIL PROTECTED] defmac
[EMAIL PROTECTED] PDF_DEBUG_OBJECT (message, ...)
[EMAIL PROTECTED] defmac
[EMAIL PROTECTED] PDF_DEBUG_DOCUMENT (message, ...)
[EMAIL PROTECTED] defmac
[EMAIL PROTECTED] PDF_DEBUG_PAGE (message, ...)
[EMAIL PROTECTED] defmac
+
[EMAIL PROTECTED] @strong
[EMAIL PROTECTED] Parameters
[EMAIL PROTECTED] @var
[EMAIL PROTECTED] message
+a 'const char*' string
[EMAIL PROTECTED] ...
+message's arguments
[EMAIL PROTECTED] table
[EMAIL PROTECTED] Usage example
[EMAIL PROTECTED]
+PDF_DEBUG_BASE("Testing macro '%s' '%d' '%lf'", "string", 7, 10.1);
[EMAIL PROTECTED] example
[EMAIL PROTECTED] table
@node Memory Allocation
@section Memory Allocation
@@ -224,7 +381,6 @@
@menu
* Boolean Types::
-* Status Types::
* Numeric Types::
* Big Numbers::
@end menu
@@ -237,7 +393,7 @@
@end deftp
The following constants defines the valid values to be hold in a
[EMAIL PROTECTED] variable:
[EMAIL PROTECTED] variable:
@deftp {Constant} PDF_TRUE
Logical true.
@@ -247,24 +403,6 @@
Logical false.
@end deftp
[EMAIL PROTECTED] Status Types
[EMAIL PROTECTED] Status Types
-
[EMAIL PROTECTED] {Data Type} pdf_status_t
-A status value.
[EMAIL PROTECTED] deftp
-
-The following constants defines the valid values to be hold in a
[EMAIL PROTECTED] variable:
-
[EMAIL PROTECTED] {Constant} PDF_OK
-A success status.
[EMAIL PROTECTED] deftp
-
[EMAIL PROTECTED] {Constant} PDF_ERROR
-An error status.
[EMAIL PROTECTED] deftp
-
@node Numeric Types
@subsection Numeric Types
###
Review it and I'll commit.
-gerel