wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit d953213bf75892f5dfaedbb9627e39458fc7c89b
parent e42c5a1be64fc4f211e5f7dc48afb9eba6cb7e3e
Author: Kris Maglione <kris@suckless.org>
Date:   Mon, 17 May 2010 12:06:02 -0400

Add forgotten cmd/wmii/error.c

Diffstat:
cmd/wmii/error.c | 41+++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+), 0 deletions(-)

diff --git a/cmd/wmii/error.c b/cmd/wmii/error.c @@ -0,0 +1,41 @@ +/* Copyright ©2007-2009 Kris Maglione <jg@suckless.org> + * See LICENSE file for license details. + */ + +#include "dat.h" +#include "fns.h" + +static jmp_buf errjmp[16]; +static long nerror; + +void +error(char *fmt, ...) { + char errbuf[IXP_ERRMAX]; + va_list ap; + + va_start(ap, fmt); + vsnprint(errbuf, IXP_ERRMAX, fmt, ap); + va_end(ap); + ixp_errstr(errbuf, IXP_ERRMAX); + + nexterror(); +} + +void +nexterror(void) { + assert(nerror > 0); + longjmp(errjmp[--nerror], 1); +} + +void +poperror(void) { + assert(nerror > 0); + --nerror; +} + +jmp_buf* +pusherror(void) { + assert(nerror < nelem(errjmp)); + return &errjmp[nerror++]; +} +