(root)/
gettext-0.22.4/
gettext-tools/
src/
po-xerror.h
       1  /* Error handling during reading and writing of PO files.
       2     Copyright (C) 2005 Free Software Foundation, Inc.
       3     Written by Bruno Haible <bruno@clisp.org>, 2005.
       4  
       5     This program is free software: you can redistribute it and/or modify
       6     it under the terms of the GNU General Public License as published by
       7     the Free Software Foundation; either version 3 of the License, or
       8     (at your option) any later version.
       9  
      10     This program is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13     GNU General Public License for more details.
      14  
      15     You should have received a copy of the GNU General Public License
      16     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      17  
      18  #ifndef _PO_XERROR_H
      19  #define _PO_XERROR_H
      20  
      21  #ifdef __cplusplus
      22  extern "C" {
      23  #endif 
      24  
      25  #include <stddef.h>
      26  
      27  struct message_ty;
      28  
      29  
      30  /* A higher-level error handler than the one in po-error.h.  */
      31  
      32  /* These values must be the same as those in gettext-po.h.  */
      33  #define PO_SEVERITY_WARNING     0 /* just a warning, tell the user */
      34  #define PO_SEVERITY_ERROR       1 /* an error, the operation cannot complete */
      35  #define PO_SEVERITY_FATAL_ERROR 2 /* an error, the operation must be aborted */
      36  
      37  /* Signal a problem of the given severity.
      38     MESSAGE and/or FILENAME + LINENO indicate where the problem occurred.
      39     If FILENAME is NULL, FILENAME and LINENO and COLUMN should be ignored.
      40     If LINENO is (size_t)(-1), LINENO and COLUMN should be ignored.
      41     If COLUMN is (size_t)(-1), it should be ignored.
      42     MESSAGE_TEXT is the problem description (if MULTILINE_P is true,
      43     multiple lines of text, each terminated with a newline, otherwise
      44     usually a single line).
      45     Must not return if SEVERITY is PO_SEVERITY_FATAL_ERROR.  */
      46  extern DLL_VARIABLE
      47         void (*po_xerror) (int severity,
      48                            const struct message_ty *message,
      49                            const char *filename, size_t lineno, size_t column,
      50                            int multiline_p, const char *message_text);
      51  
      52  /* Signal a problem that refers to two messages.
      53     Similar to two calls to po_xerror.
      54     If possible, a "..." can be appended to MESSAGE_TEXT1 and prepended to
      55     MESSAGE_TEXT2.  */
      56  extern DLL_VARIABLE
      57         void (*po_xerror2) (int severity,
      58                             const struct message_ty *message1,
      59                             const char *filename1, size_t lineno1, size_t column1,
      60                             int multiline_p1, const char *message_text1,
      61                             const struct message_ty *message2,
      62                             const char *filename2, size_t lineno2, size_t column2,
      63                             int multiline_p2, const char *message_text2);
      64  
      65  /* The default error handler.  */
      66  extern void textmode_xerror (int severity,
      67                               const struct message_ty *message,
      68                               const char *filename, size_t lineno, size_t column,
      69                               int multiline_p, const char *message_text);
      70  extern void textmode_xerror2 (int severity,
      71                                const struct message_ty *message1,
      72                                const char *filename1, size_t lineno1, size_t column1,
      73                                int multiline_p1, const char *message_text1,
      74                                const struct message_ty *message2,
      75                                const char *filename2, size_t lineno2, size_t column2,
      76                                int multiline_p2, const char *message_text2);
      77  
      78  #ifdef __cplusplus
      79  }
      80  #endif
      81  
      82  #endif /* _PO_XERROR_H */