Back to index

lightning-sunbird  0.9+nobinonly
portreg.h
Go to the documentation of this file.
00001 /* ***** BEGIN LICENSE BLOCK *****
00002  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00003  *
00004  * The contents of this file are subject to the Mozilla Public License Version
00005  * 1.1 (the "License"); you may not use this file except in compliance with
00006  * the License. You may obtain a copy of the License at
00007  * http://www.mozilla.org/MPL/
00008  *
00009  * Software distributed under the License is distributed on an "AS IS" basis,
00010  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00011  * for the specific language governing rights and limitations under the
00012  * License.
00013  *
00014  * The Original Code is the Netscape security libraries.
00015  *
00016  * The Initial Developer of the Original Code is
00017  * Netscape Communications Corporation.
00018  * Portions created by the Initial Developer are Copyright (C) 1994-2000
00019  * the Initial Developer. All Rights Reserved.
00020  *
00021  * Contributor(s):
00022  *
00023  * Alternatively, the contents of this file may be used under the terms of
00024  * either the GNU General Public License Version 2 or later (the "GPL"), or
00025  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00026  * in which case the provisions of the GPL or the LGPL are applicable instead
00027  * of those above. If you wish to allow use of your version of this file only
00028  * under the terms of either the GPL or the LGPL, and not to allow others to
00029  * use your version of this file under the terms of the MPL, indicate your
00030  * decision by deleting the provisions above and replace them with the notice
00031  * and other provisions required by the GPL or the LGPL. If you do not delete
00032  * the provisions above, a recipient may use your version of this file under
00033  * the terms of any one of the MPL, the GPL or the LGPL.
00034  *
00035  * ***** END LICENSE BLOCK ***** */
00036 
00037 /*
00038  * shexp.h: Defines and prototypes for shell exp. match routines
00039  * 
00040  *
00041  * This routine will match a string with a shell expression. The expressions
00042  * accepted are based loosely on the expressions accepted by zsh.
00043  * 
00044  * o * matches anything
00045  * o ? matches one character
00046  * o \ will escape a special character
00047  * o $ matches the end of the string
00048  * o [abc] matches one occurence of a, b, or c. The only character that needs
00049  *         to be escaped in this is ], all others are not special.
00050  * o [a-z] matches any character between a and z
00051  * o [^az] matches any character except a or z
00052  * o ~ followed by another shell expression will remove any pattern
00053  *     matching the shell expression from the match list
00054  * o (foo|bar) will match either the substring foo, or the substring bar.
00055  *             These can be shell expressions as well.
00056  * 
00057  * The public interface to these routines is documented below.
00058  * 
00059  */
00060  
00061 #ifndef SHEXP_H
00062 #define SHEXP_H
00063 
00064 /*
00065  * Requires that the macro MALLOC be set to a "safe" malloc that will 
00066  * exit if no memory is available. 
00067  */
00068 
00069 
00070 /* --------------------------- Public routines ---------------------------- */
00071 
00072 
00073 /*
00074  * shexp_valid takes a shell expression exp as input. It returns:
00075  * 
00076  *  NON_SXP      if exp is a standard string
00077  *  INVALID_SXP  if exp is a shell expression, but invalid
00078  *  VALID_SXP    if exp is a valid shell expression
00079  */
00080 
00081 #define NON_SXP -1
00082 #define INVALID_SXP -2
00083 #define VALID_SXP 1
00084 
00085 SEC_BEGIN_PROTOS
00086 
00087 extern int PORT_RegExpValid(const char *exp);
00088 
00089 extern int PORT_RegExpSearch(const char *str, const char *exp);
00090 
00091 /* same as above but uses case insensitive search */
00092 extern int PORT_RegExpCaseSearch(const char *str, const char *exp);
00093 
00094 SEC_END_PROTOS
00095 
00096 #endif