 7b9f6b402c
			
		
	
	
	7b9f6b402c
	
	
	
		
			
			The FSF now prefers to use URL's in copyright headers rather than their postal address. This change updates the address to be <http://www.gnu.org/licenses> per http://www.gnu.org/licenses/gpl-howto.html Signed-off-by: Jon Stanley <jonstanley@gmail.com> Acked-by: Steven Rostedt <rostedt@goodmis.org> Cc: Steven Rostedt <rostedt@goodmis.org> Link: http://lkml.kernel.org/r/1347049967-3143-1-git-send-email-jonstanley@gmail.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
		
			
				
	
	
		
			85 lines
		
	
	
	
		
			2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
	
		
			2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * 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 die(const char *fmt, ...);
 | |
| void *malloc_or_die(unsigned int size);
 | |
| void warning(const char *fmt, ...);
 | |
| void pr_stat(const char *fmt, ...);
 | |
| void vpr_stat(const char *fmt, va_list ap);
 | |
| 
 | |
| /* Always available */
 | |
| void __die(const char *fmt, ...);
 | |
| void __warning(const char *fmt, ...);
 | |
| void __pr_stat(const char *fmt, ...);
 | |
| 
 | |
| void __vdie(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
 |