| /* | |
| * Copyright (C) 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com> | |
| * | |
| * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| * This program is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; | |
| * version 2.1 of the License (not later!) | |
| * | |
| * This program is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this program; if not, see <http://www.gnu.org/licenses> | |
| * | |
| * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| */ | |
| #ifndef __UTIL_H | |
| #define __UTIL_H | |
| #include <ctype.h> | |
| /* Can be overridden */ | |
| void warning(const char *fmt, ...); | |
| void pr_stat(const char *fmt, ...); | |
| void vpr_stat(const char *fmt, va_list ap); | |
| /* Always available */ | |
| void __warning(const char *fmt, ...); | |
| void __pr_stat(const char *fmt, ...); | |
| void __vwarning(const char *fmt, ...); | |
| void __vpr_stat(const char *fmt, ...); | |
| #define min(x, y) ({ \ | |
| typeof(x) _min1 = (x); \ | |
| typeof(y) _min2 = (y); \ | |
| (void) (&_min1 == &_min2); \ | |
| _min1 < _min2 ? _min1 : _min2; }) | |
| static inline char *strim(char *string) | |
| { | |
| char *ret; | |
| if (!string) | |
| return NULL; | |
| while (*string) { | |
| if (!isspace(*string)) | |
| break; | |
| string++; | |
| } | |
| ret = string; | |
| string = ret + strlen(ret) - 1; | |
| while (string > ret) { | |
| if (!isspace(*string)) | |
| break; | |
| string--; | |
| } | |
| string[1] = 0; | |
| return ret; | |
| } | |
| static inline int has_text(const char *text) | |
| { | |
| if (!text) | |
| return 0; | |
| while (*text) { | |
| if (!isspace(*text)) | |
| return 1; | |
| text++; | |
| } | |
| return 0; | |
| } | |
| #endif |