From: mdw Date: Wed, 22 Dec 1999 16:01:57 +0000 (+0000) Subject: Standard progress-reporting functions. X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/commitdiff_plain/d38c2e8d5e416b5803dd969be1b0b748287b25a1 Standard progress-reporting functions. --- diff --git a/pgen-stdev.c b/pgen-stdev.c new file mode 100644 index 0000000..688a4b6 --- /dev/null +++ b/pgen-stdev.c @@ -0,0 +1,102 @@ +/* -*-c-*- + * + * $Id: pgen-stdev.c,v 1.1 1999/12/22 16:01:57 mdw Exp $ + * + * Standard event handlers + * + * (c) 1999 Straylight/Edgeware + */ + +/*----- Licensing notice --------------------------------------------------* + * + * This file is part of Catacomb. + * + * Catacomb is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * Catacomb 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 Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with Catacomb; if not, write to the Free + * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + * MA 02111-1307, USA. + */ + +/*----- Revision history --------------------------------------------------* + * + * $Log: pgen-stdev.c,v $ + * Revision 1.1 1999/12/22 16:01:57 mdw + * Standard progress-reporting functions. + * + */ + +/*----- Header files ------------------------------------------------------*/ + +#include +#include +#include + +#include "pgen.h" + +/*----- Main code ---------------------------------------------------------*/ + +/* --- @pgen_evspin@ --- * + * + * Displays a spinning baton to show progress. + */ + +int pgen_evspin(int rq, pgen_event *ev, void *p) +{ + static char spinner[] = "/-\\|"; + static char *q = spinner; + + switch (rq) { + case PGEN_PASS: + case PGEN_FAIL: + case PGEN_DONE: + putchar(*q++); + putchar('\b'); + fflush(stdout); + if (!*q) + q = spinner; + break; + } + return (0); +} + +/* --- @pgen_ev@ --- * + * + * Traditional event handler, shows dots for each test. + */ + +int pgen_ev(int rq, pgen_event *ev, void *p) +{ + switch (rq) { + case PGEN_BEGIN: + printf("Searching for %s: ", ev->name); + fflush(stdout); + break; + case PGEN_FAIL: + putchar('.'); + fflush(stdout); + break; + case PGEN_PASS: + putchar('+'); + fflush(stdout); + break; + case PGEN_DONE: + puts("+ ok"); + break; + case PGEN_ABORT: + puts(" failed"); + break; + } + return (0); +} + +/*----- That's all, folks -------------------------------------------------*/