Functions

splitpath.c File Reference

#include "utility.h"
Include dependency graph for splitpath.c:

Go to the source code of this file.

Functions

void _splitpath (const CHAR *path, CHAR *drv, CHAR *dir, CHAR *name, CHAR *ext)

Function Documentation

void _splitpath ( const CHAR path,
CHAR drv,
CHAR dir,
CHAR name,
CHAR ext 
)

Definition at line 78 of file splitpath.c.

{
        const CHAR* end; /* end of processed string */
    const CHAR* p;   /* search pointer */
    const CHAR* s;   /* copy pointer */

    /* extract drive name */
    if (path[0] && path[1]==':') {
        if (drv) {
            *drv++ = *path++;
            *drv++ = *path++;
            *drv = '\0';
        }
    } else if (drv)
        *drv = '\0';

    /* search for end of string or stream separator */
    for(end=path; *end && *end!=':'; )
        end++;

    /* search for begin of file extension */
    for(p=end; p>path && *--p!='\\' && *p!='/'; )
        if (*p == '.') {
            end = p;
            break;
        }

    if (ext)
        for(s=end; (*ext=*s++); )
            ext++;

    /* search for end of directory name */
    for(p=end; p>path; )
        if (*--p=='\\' || *p=='/') {
            p++;
            break;
        }

    if (name) {
        for(s=p; s<end; )
            *name++ = *s++;

        *name = '\0';
    }

    if (dir) {
        for(s=path; s<p; )
            *dir++ = *s++;

        *dir = '\0';
    }
}

ROS Explorer Source Code Documentation
generated on 02.01.2013 by doxygen

ROS Explorer Homepage