File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / iftop / screenfilter.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 16:57:34 2012 UTC (12 years, 3 months ago) by misho
Branches: iftop, MAIN
CVS tags: v1_0rc4, v0_17p0, v0_17, HEAD
iftop

    1: /*
    2:  * screenfilter.c:
    3:  *
    4:  * Copyright (c) 2002 DecisionSoft Ltd.
    5:  * Paul Warren (pdw) Fri Oct 25 10:21:00 2002
    6:  *
    7:  */
    8: 
    9: #include "config.h"
   10: 
   11: #ifdef HAVE_REGCOMP
   12: 
   13: #include <sys/types.h>
   14: #include <regex.h>
   15: #include <stdio.h>
   16: #include "iftop.h"
   17: #include "options.h"
   18: 
   19: static const char rcsid[] = "$Id: screenfilter.c,v 1.1.1.1 2012/02/21 16:57:34 misho Exp $";
   20: 
   21: extern options_t options ;
   22: 
   23: regex_t preg;
   24: 
   25: int screen_filter_set(char* s) {
   26:     int r;
   27: 
   28:     if(options.screenfilter != NULL) {
   29:         xfree(options.screenfilter);
   30:         options.screenfilter = NULL;
   31:         regfree(&preg);
   32:     }
   33: 
   34:     r = regcomp(&preg, s, REG_ICASE|REG_EXTENDED);
   35:       
   36:     if(r == 0) {
   37:         options.screenfilter = s;
   38:         return 1;
   39:     }
   40:     else {
   41:         xfree(s);
   42:         return 0;
   43:     }
   44: }
   45: 
   46: int screen_filter_match(char *s) {
   47:     int r;
   48:     if(options.screenfilter == NULL) {
   49:         return 1;
   50:     }
   51: 
   52:     r = regexec(&preg, s, 0, NULL, 0);
   53:     if(r == 0) {
   54:         return 1;
   55:     }
   56:     else {
   57:         return 0;
   58:     }
   59: }
   60: 
   61: #endif /* HAVE_REGCOMP */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>