I suggest a change to pdf-error module. It avoids we need to keep synchronized both lists.
# 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: dd399a071183ce13b42717ac370fc31be72d5547 # timestamp: 2008-09-13 17:45:45 +0200 # base_revision_id: [EMAIL PROTECTED] # # Begin patch === modified file 'ChangeLog' --- ChangeLog 2008-09-12 03:03:25 +0000 +++ ChangeLog 2008-09-13 15:44:46 +0000 @@ -1,3 +1,7 @@ +2008-09-13 David Vazquez <[EMAIL PROTECTED]> + + * src/base/pdf-error.h: Identifiers and strings are kept in a single list. + 2008-09-12 Jose E. Marchesi <[EMAIL PROTECTED]> * src/base/pdf-types.h: New macros PDF_MAX and PDF_MIN. === modified file 'src/base/pdf-error.c' --- src/base/pdf-error.c 2008-09-09 01:41:01 +0000 +++ src/base/pdf-error.c 2008-09-13 15:44:46 +0000 @@ -1,4 +1,4 @@ -/* -*- mode: C -*- Time-stamp: "08/09/09 00:37:53 jemarch" +/* -*- mode: C -*- Time-stamp: "2008-09-13 17:39:59 davazp" * * File: pdf-error.c * Date: Sun Feb 24 20:22:05 2008 @@ -35,26 +35,12 @@ extern char *program_name; /* Update this list according to pdf_status_t. */ +#define ERROR_ENTRY(id, string) string const char * pdf_error_stlist [] = { - "error", - "invalid or bad arguments", - "insufficient memory", - "end of file", - "divison by zero", - "no node found", - "invalid range", - "error in text encoding", - "no matching found", - "invalid text format", - "not enough permissions", - "invalid path name", - "operation can't be performed now, maybe later", - "no space left on device", - "text module global context not initialized", - "operation requires some entity be empty" + PDF_ERROR_LIST }; - +#undef ERROR_ENTRY void pdf_perror (const pdf_status_t status, const char *str) === modified file 'src/base/pdf-error.h' --- src/base/pdf-error.h 2008-09-09 01:41:01 +0000 +++ src/base/pdf-error.h 2008-09-13 15:44:46 +0000 @@ -1,4 +1,4 @@ -/* -*- mode: C -*- Time-stamp: "08/09/09 00:37:08 jemarch" +/* -*- mode: C -*- Time-stamp: "2008-09-13 17:39:56 davazp" * * File: pdf-error.h * Date: Sun Feb 24 20:22:05 2008 @@ -62,31 +62,33 @@ /* BEGIN PUBLIC */ -/* If you add a status code don't forget to add the corresponding string - * to pdf_error_stlist[] defined in pdf-error.c. - * Also PDF_STATUS_ITEMS must be the last entry. - */ +#define PDF_ERROR_LIST \ + ERROR_ENTRY (PDF_ERROR, "error"), \ + ERROR_ENTRY (PDF_EBADDATA, "invalid or bad arguments"), \ + ERROR_ENTRY (PDF_ENOMEM, "insufficient memory"), \ + ERROR_ENTRY (PDF_EEOF, "end of file"), \ + ERROR_ENTRY (PDF_EDIVBYZERO, "divison by zero"), \ + ERROR_ENTRY (PDF_ENONODE, "no node found"), \ + ERROR_ENTRY (PDF_EINVRANGE, "invalid range"), \ + ERROR_ENTRY (PDF_ETEXTENC, "error in text encoding"), \ + ERROR_ENTRY (PDF_ENOMATCH, "no matching found"), \ + ERROR_ENTRY (PDF_EBADTEXT, "invalid text format"), \ + ERROR_ENTRY (PDF_EBADPERMS, "not enough permissions"), \ + ERROR_ENTRY (PDF_EBADNAME, "invalid path name"), \ + ERROR_ENTRY (PDF_EAGAIN, "operation can't be performed now, maybe later"), \ + ERROR_ENTRY (PDF_ENOSPC, "no space left on device"), \ + ERROR_ENTRY (PDF_ENOTEMPTY, "text module global context not initialized"), \ + ERROR_ENTRY (PDF_EBADCONTEXT, "operation requires some entity be empty") + + +#define ERROR_ENTRY(id,string) id enum pdf_status_e { - PDF_OK = 0, - PDF_ERROR, - PDF_EBADDATA, - PDF_ENOMEM, - PDF_EEOF, - PDF_EDIVBYZERO, - PDF_ENONODE, - PDF_EINVRANGE, - PDF_ETEXTENC, - PDF_ENOMATCH, - PDF_EBADTEXT, - PDF_EBADPERMS, - PDF_EBADNAME, - PDF_EAGAIN, - PDF_ENOSPC, - PDF_ENOTEMPTY, - PDF_EBADCONTEXT, - PDF_STATUS_ITEMS + PDF_OK = 0, + PDF_ERROR_LIST, + PDF_STATUS_ITEMS }; +#undef ERROR_ENTRY typedef enum pdf_status_e pdf_status_t; # Begin bundle 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 imRtQA==
--
