Mercurial > hg
view contrib/chg/util.h @ 37775:03d7f885d5f2
revsetlang: do not pass in non-bytes to parse()
Since parse() isn't a simple function, we shouldn't expect it would raise
TypeError or ValueError for invalid inputs. Before, TypeError was raised
at 'if pos != len(spec)', which was quite late to report an error.
This patch also makes tokenize() detect invalid object before converting
it to a py3-safe bytes.
Spotted while adding the 'revset(...)' hack to _parsewith().
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Tue, 17 Apr 2018 21:59:58 +0900 |
parents | 9724f54923ec |
children |
line wrap: on
line source
/* * Utility functions * * Copyright (c) 2011 Yuya Nishihara <yuya@tcha.org> * * This software may be used and distributed according to the terms of the * GNU General Public License version 2 or any later version. */ #ifndef UTIL_H_ #define UTIL_H_ #ifdef __GNUC__ #define PRINTF_FORMAT_ __attribute__((format(printf, 1, 2))) #define UNUSED_ __attribute__((unused)) #else #define PRINTF_FORMAT_ #define UNUSED_ #endif void abortmsg(const char *fmt, ...) PRINTF_FORMAT_; void abortmsgerrno(const char *fmt, ...) PRINTF_FORMAT_; void enablecolor(void); void enabledebugmsg(void); void debugmsg(const char *fmt, ...) PRINTF_FORMAT_; void fchdirx(int dirfd); void fsetcloexec(int fd); void *mallocx(size_t size); void *reallocx(void *ptr, size_t size); int runshellcmd(const char *cmd, const char *envp[], const char *cwd); #endif /* UTIL_H_ */