Mercurial > gnulib
view pygnulib/GLError.py @ 40216:02ed6264c100
strfmon_l: Fix -fsanitize=address finding.
* lib/strfmon_l.c: Include <errno.h>, <stdbool.h>, <stdlib.h>,
<string.h>.
(MAX_ARGS): Renamed from MAX_ARG_WORDS.
(directive_t, directives_t): New types.
(fmon_parse): New function.
(rpl_strfmon_l): Don't call va_arg more often than needed for the
format string. Consume 'long double' arguments in places where the
format string indicates so.
* modules/strfmon_l (Depends-on): Add 'stdbool'.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sat, 09 Mar 2019 23:30:40 +0100 |
parents | f63c4e7dfb31 |
children |
line wrap: on
line source
#!/usr/bin/python # encoding: UTF-8 #=============================================================================== # Define global imports #=============================================================================== import os import re import sys import locale import codecs from . import constants #=============================================================================== # Define module information #=============================================================================== __author__ = constants.__author__ __license__ = constants.__license__ __copyright__ = constants.__copyright__ #=============================================================================== # Define global constants #=============================================================================== PYTHON3 = constants.PYTHON3 NoneType = type(None) APP = constants.APP DIRS = constants.DIRS ENCS = constants.ENCS UTILS = constants.UTILS MODES = constants.MODES TESTS = constants.TESTS compiler = constants.compiler joinpath = constants.joinpath cleaner = constants.cleaner string = constants.string isabs = os.path.isabs isdir = os.path.isdir isfile = os.path.isfile normpath = os.path.normpath relpath = os.path.relpath #=============================================================================== # Define GLError class #=============================================================================== class GLError(Exception): '''Exception handler for pygnulib classes.''' def __init__(self, errno, errinfo=None): '''Each error has following parameters: errno: code of error; used to catch error type 1: file does not exist in GLFileSystem: <file> 2: cannot patch file inside GLFileSystem: <file> 3: configure file does not exist: <configure.ac> 4: minimum supported autoconf version is 2.59, not <version> 5: <gnulib-comp.m4> is expected to contain gl_M4_BASE([<m4base>]) 6: missing sourcebase argument 7: missing docbase argument 8: missing testsbase argument 9: missing libname argument 10: conddeps are not supported with inctests 11: incompatible licenses on modules: <modules> 12: cannot process empty filelist 13: cannot create the given directory: <directory> 14: cannot delete the given file: <file> 15: cannot create the given file: <file> 16: cannot transform the given file: <file> 17: cannot update the given file: <file> 18: module lacks a license: <module> 19: could not create destination directory: <directory> errinfo: additional information; style: 0 or 1, whether old-style''' self.errno = errno self.errinfo = errinfo self.args = (self.errno, self.errinfo) def __repr__(self): errinfo = self.errinfo errors = \ [ # Begin list of errors "file does not exist in GLFileSystem: %s" % repr(errinfo), "cannot patch file inside GLFileSystem: %s" % repr(errinfo), "configure file does not exist: %s" % repr(errinfo), "minimum supported autoconf version is 2.59, not %s" % repr( errinfo), "%s is expected to contain gl_M4_BASE([%s])" % \ (repr(os.path.join(errinfo, 'gnulib-comp.m4')), repr(errinfo)), "missing sourcebase argument; cache file doesn't contain it," + " so you might have to set this argument", "missing docbase argument; you might have to create GLImport" \ + " instance with mode 0 and docbase argument", "missing testsbase argument; cache file doesn't contain it," + " so you might have to set this argument" "missing libname argument; cache file doesn't contain it," + " so you might have to set this argument", "conddeps are not supported with inctests", "incompatible licenses on modules: %s" % repr(errinfo), "cannot process empty filelist", "cannot create the given directory: %s" % repr(errinfo), "cannot remove the given file: %s" % repr(errinfo), "cannot create the given file: %s" % repr(errinfo), "cannot transform the given file: %s" % repr(errinfo), "cannot update/replace the given file: %s" % repr(errinfo), "module lacks a license: %s" % repr(errinfo), "error when running subprocess: %s" % repr(errinfo), ] # Complete list of errors if not PYTHON3: self.message = (b'[Errno %d] %s' % (self.errno, errors[self.errno - 1].encode(ENCS['default']))) else: # if PYTHON3 self.message = ('[Errno %d] %s' % (self.errno, errors[self.errno - 1])) return(self.message)