Crossfire Server, Trunk  R21024
path.c File Reference
#include <assert.h>
#include <stdio.h>
#include <string.h>
#include <global.h>
#include "define.h"
#include "path.h"
+ Include dependency graph for path.c:

Go to the source code of this file.

Functions

char * path_combine (const char *src, const char *dst, char *path, size_t size)
 
char * path_combine_and_normalize (const char *src, const char *dst, char *path, size_t size)
 
void path_normalize (char *path)
 

Detailed Description

Contains file path manipulation functions.

Definition in file path.c.

Function Documentation

◆ path_combine()

char* path_combine ( const char *  src,
const char *  dst,
char *  path,
size_t  size 
)

Combines 2 paths, which can be relative.

Parameters
srcpath we're starting from.
dstpath we're doing to.
pathbuffer containing the combined path.
sizesize of path.
Returns
path.
Note
this doesn't handle the '..', check path_normalize().

Definition at line 51 of file path.c.

References llevDebug, LOG(), and snprintf.

Referenced by check_combine(), and path_combine_and_normalize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ path_combine_and_normalize()

char* path_combine_and_normalize ( const char *  src,
const char *  dst,
char *  path,
size_t  size 
)

Combines the 2 paths.

Parameters
srcpath we're starting from.
dstpath we're getting to.
pathbuffer that will contain combined paths.
sizelength of path.
Returns
path

Definition at line 172 of file path.c.

References path_combine(), and path_normalize().

Referenced by check_combine_and_normalize(), command_reset(), enter_exit(), enter_fixed_template_map(), enter_random_template_map(), enter_unique_map(), load_and_link_tiled_map(), load_map_header(), load_quests_from_file(), QuestManager::loadQuestFile(), CREMapInformationManager::process(), and process_map().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ path_normalize()

void path_normalize ( char *  path)

Cleans specified path. Removes .. and things like that.

Parameters
pathpath to clear. It will be modified in place.
Note
there shouldn't be any buffer overflow, as we just remove stuff.

Definition at line 85 of file path.c.

References llevDebug, and LOG().

Referenced by check_normalize(), and path_combine_and_normalize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: