From f121f0983e47d77ebac01da9bb308ac5c1ea113b Mon Sep 17 00:00:00 2001 From: oes Date: Thu, 6 Sep 2001 14:05:59 +0000 Subject: [PATCH] Fixed silly bug --- pcrs.c | 58 +++++++++++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/pcrs.c b/pcrs.c index aecf2064..1a000253 100644 --- a/pcrs.c +++ b/pcrs.c @@ -1,43 +1,48 @@ -const char pcrs_rcs[] = "$Id: pcrs.c,v 1.11 2001/08/15 15:32:03 oes Exp $"; +const char pcrs_rcs[] = "$Id: pcrs.c,v 1.12 2001/08/18 11:35:00 oes Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/pcrs.c,v $ * - * Purpose : pcrs is a supplement to the brilliant pcre library by Philip - * Hazel and adds Perl-style substitution. That - * is, it mimics Perl's 's' operator. + * Purpose : pcrs is a supplement to the pcre library by Philip Hazel + * and adds Perl-style substitution. That + * is, it mimics Perl's 's' operator. See pcrs(3) for details. * - * Currently, there's no documentation besides comments and the - * source itself :-( - * - * Note: In addition to perl's options, 'U' for ungreedy and 'T' - * for trivial (i.e.: ignore backrefs in the substitute) are - * supported. * * Copyright : Written and Copyright (C) 2000, 2001 by Andreas S. Oesterhelt * * * This program is free software; you can redistribute it - * and/or modify it under the terms of the GNU General - * Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at - * your option) any later version. + * and/or modify it under the terms of the GNU Lesser + * General Public License (LGPL), version 2.1, which should + * be included in this distribution (see LICENSE.txt), with + * the exception that the permission to replace that license + * with the GNU General Public License (GPL) given in section + * 3 is restricted to version 2 of the GPL. * * 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 General Public - * License for more details. + * PARTICULAR PURPOSE. See the license for more details. * - * The GNU General Public License should be included with - * this file. If not, you can view it at - * http://www.gnu.org/copyleft/gpl.html + * The GNU Lesser General Public License should be included + * with this file. If not, you can view it at + * http://www.gnu.org/licenses/lgpl.html * or write to the Free Software Foundation, Inc., 59 * Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * Revisions : * $Log: pcrs.c,v $ + * Revision 1.12 2001/08/18 11:35:00 oes + * - Introduced pcrs_strerror() + * - made some NULL arguments non-fatal + * - added support for \n \r \e \b \t \f \a \0 in substitute + * - made quoting adhere to standard rules + * - added warning for bad backrefs + * - added pcrs_execute_list() + * - fixed comments + * - bugfix & cosmetics + * * Revision 1.11 2001/08/15 15:32:03 oes * - Added support for Perl's special variables $+, $' and $` * - Improved the substitute parser @@ -103,10 +108,11 @@ const char pcrs_rcs[] = "$Id: pcrs.c,v 1.11 2001/08/15 15:32:03 oes Exp $"; #include #include +#include + #include "pcrs.h" -#include -const char pcrs_h_rcs[] = PCRS_H_VERSION; +const char pcrs_h_rcs[] = PCRS_H_VERSION; /********************************************************************* * @@ -150,7 +156,7 @@ const char *pcrs_strerror(const int error) default: return "Unknown error"; } } - /* error > 0: No error */ + /* error >= 0: No error */ return "(pcrs:) Everything's just fine. Thanks for asking."; } @@ -689,15 +695,16 @@ int pcrs_execute_list(pcrs_job *joblist, char *subject, size_t subject_length, c old = subject; *result_length = subject_length; - hits = 0; + hits = total_hits = 0; for (job = joblist; job != NULL; job = job->next) { hits = pcrs_execute(job, old, *result_length, &new, result_length); + if (old != subject) free(old); + if (hits < 0) { - *result = NULL; return(hits); } else @@ -708,7 +715,8 @@ int pcrs_execute_list(pcrs_job *joblist, char *subject, size_t subject_length, c } *result = new; - return(hits); + return(total_hits); + } -- 2.39.2