Ignore:
Timestamp:
Sep 2, 2007, 10:05:39 PM (18 years ago)
Author:
bird
Message:

env, paths, page allocation.

File:
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/kStuff/kHlp/Generic/kHlpIsFilenameOnly.c

    r3573 r3575  
    11/* $Id$ */
    22/** @file
     3 * kHlpPath - kHlpIsFilenameOnly.
     4 */
     5
     6/*
     7 * Copyright (c) 2006-2007 knut st. osmundsen <bird-src-spam@anduin.net>
    38 *
    4  * kLdr - The Dynamic Loader, Path Helper Functions.
     9 * This file is part of kStuff.
    510 *
    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.
    715 *
     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.
    820 *
    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
    2424 *
    2525 */
    26 
    2726
    2827/*******************************************************************************
     
    3130#include <k/kHlpPath.h>
    3231#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 #else
    56         if (ch == '/')
    57         {
    58             while ((ch = *++pszFilename) == '/')
    59                 /* betsuni */;
    60             pszLast = pszFilename;
    61         }
    62 #endif
    63         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 }
    11032
    11133
     
    11840 * @param   pszFilename     The filename to parse.
    11941 */
    120 int kHlpIsFilenameOnly(const char *pszFilename)
     42KHLP_DECL(int) kHlpIsFilenameOnly(const char *pszFilename)
    12143{
    12244    for (;;)
    12345    {
    12446        const char ch = *pszFilename++;
    125 #if defined(__OS2__) || defined(__WIN__)
     47#if K_OS == K_OS_OS2 || K_OS == K_OS_WINDOWS
    12648        if (ch == '/' || ch == '\\' || ch == ':')
    12749#else
     
    13456}
    13557
    136 
Note: See TracChangeset for help on using the changeset viewer.