Changeset 3575 for trunk/kStuff/kHlp/Generic/kHlpIsFilenameOnly.c
- Timestamp:
- Sep 2, 2007, 10:05:39 PM (18 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/kStuff/kHlp/Generic/kHlpIsFilenameOnly.c
r3573 r3575 1 1 /* $Id$ */ 2 2 /** @file 3 * kHlpPath - kHlpIsFilenameOnly. 4 */ 5 6 /* 7 * Copyright (c) 2006-2007 knut st. osmundsen <bird-src-spam@anduin.net> 3 8 * 4 * kLdr - The Dynamic Loader, Path Helper Functions.9 * This file is part of kStuff. 5 10 * 6 * Copyright (c) 2006-2007 knut st. osmundsen <bird-kbuild-src@anduin.net> 11 * kStuff is free software; you can redistribute it and/or 12 * modify it under the terms of the GNU Lesser General Public 13 * License as published by the Free Software Foundation; either 14 * version 2.1 of the License, or (at your option) any later version. 7 15 * 16 * kStuff is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19 * Lesser General Public License for more details. 8 20 * 9 * This file is part of kLdr. 10 * 11 * kLdr is free software; you can redistribute it and/or modify 12 * it under the terms of the GNU General Public License as published by 13 * the Free Software Foundation; either version 2 of the License, or 14 * (at your option) any later version. 15 * 16 * kLdr is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU General Public License for more details. 20 * 21 * You should have received a copy of the GNU General Public License 22 * along with kLdr; if not, write to the Free Software 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 * You should have received a copy of the GNU Lesser General Public 22 * License along with kStuff; if not, write to the Free Software 23 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 24 24 * 25 25 */ 26 27 26 28 27 /******************************************************************************* … … 31 30 #include <k/kHlpPath.h> 32 31 #include <k/kHlpString.h> 33 34 35 /**36 * Get the pointer to the filename part of the name.37 *38 * @returns Pointer to where the filename starts within the string pointed to by pszFilename.39 * @returns Pointer to the terminator char if no filename.40 * @param pszFilename The filename to parse.41 */42 char *kHlpGetFilename(const char *pszFilename)43 {44 const char *pszLast = NULL;45 for (;;)46 {47 char ch = *pszFilename;48 #if defined(__OS2__) || defined(__WIN__)49 if (ch == '/' || ch == '\\' || ch == ':')50 {51 while ((ch = *++pszFilename) == '/' || ch == '\\' || ch == ':')52 /* nothing */;53 pszLast = pszFilename;54 }55 #else56 if (ch == '/')57 {58 while ((ch = *++pszFilename) == '/')59 /* betsuni */;60 pszLast = pszFilename;61 }62 #endif63 if (!ch)64 return (char *)(pszLast ? pszLast : pszFilename);65 pszFilename++;66 }67 }68 69 70 /**71 * Gets the filename suffix.72 *73 * @returns Pointer to where the suffix starts within the string pointed to by pszFilename.74 * @returns Pointer to the terminator char if no suffix.75 * @param pszFilename The filename to parse.76 */77 char *kHlpGetSuff(const char *pszFilename)78 {79 const char *pszDot = NULL;80 pszFilename = kHlpGetFilename(pszFilename);81 for (;;)82 {83 char ch = *pszFilename;84 if (ch == '.')85 {86 while ((ch = *++pszFilename) == '.')87 /* nothing */;88 if (ch)89 pszDot = pszFilename - 1;90 }91 if (!ch)92 return (char *)(pszDot ? pszDot : pszFilename);93 pszFilename++;94 }95 }96 97 98 /**99 * Gets the filename extention.100 *101 * @returns Pointer to where the extension starts within the string pointed to by pszFilename.102 * @returns Pointer to the terminator char if no extension.103 * @param pszFilename The filename to parse.104 */105 char *kHlpGetExt(const char *pszFilename)106 {107 char *psz = kHlpGetSuff(pszFilename);108 return *psz ? psz + 1 : psz;109 }110 32 111 33 … … 118 40 * @param pszFilename The filename to parse. 119 41 */ 120 intkHlpIsFilenameOnly(const char *pszFilename)42 KHLP_DECL(int) kHlpIsFilenameOnly(const char *pszFilename) 121 43 { 122 44 for (;;) 123 45 { 124 46 const char ch = *pszFilename++; 125 #if defined(__OS2__) || defined(__WIN__)47 #if K_OS == K_OS_OS2 || K_OS == K_OS_WINDOWS 126 48 if (ch == '/' || ch == '\\' || ch == ':') 127 49 #else … … 134 56 } 135 57 136
Note:
See TracChangeset
for help on using the changeset viewer.