/*====================================================================* * * bool checkfilename (char const * pathname); * * files.h * * confirm that the filename portion of a pathname string contains * only letters, digits, periods, underscores and hyphens; * * this prevents users from entering an Ethernet address where a * filename should appear on the command line; Ethernet addresses * are also valid filenames; * * Motley Tools by Charles Maier <cmaier@cmassoc.net>; * Copyright (c) 2001-2006 by Charles Maier Associates; * Licensed under the Internet Software Consortium License; * *--------------------------------------------------------------------*/ #ifndef CHECKFILENAME_SOURCE #define CHECKFILENAME_SOURCE #include <string.h> #include <ctype.h> #include "../tools/files.h" bool checkfilename (char const * pathname) { char const * filename = pathname; while (* pathname) { if ((* pathname == '/') || (* pathname == '\\')) { filename = pathname + 1; } pathname++; } while (isalnum ((unsigned char)* filename) || (* filename == '.') || (* filename == '_') || (* filename == '-')) { filename++; } return (* filename == (char) (0)); } #endif