#include <stdlib.h>
#include <vfs/canonify.h>
Go to the source code of this file.
Data Structures | |
struct | change_state_t |
struct | token_t |
Enumerations | |
enum | state_t |
States used by canonify(). | |
enum | tokval_t |
Token types used for tokenization of path. | |
Functions | |
char * | canonify (char *path, size_t *lenp) |
Canonify a file system path. | |
static token_t | next_token (token_t *cur) |
Given a token, return the next token. | |
static void | remove_trailing_slash (token_t *t, token_t *tfsl, token_t *tlcomp) |
static void | save_component (token_t *t, token_t *tfsl, token_t *tlcomp) |
static void | set_first_slash (token_t *t, token_t *tfsl, token_t *tlcomp) |
static void | shift_dot (token_t *t, token_t *tfsl, token_t *tlcomp) |
Eat the extra '. | |
static void | shift_dotdot (token_t *t, token_t *tfsl, token_t *tlcomp) |
Collapse the TK_COMP TK_SLASH TK_DOTDOT pattern. | |
static void | shift_slash (token_t *t, token_t *tfsl, token_t *tlcomp) |
Eat the extra '/'. | |
static token_t | slash_token (char *start) |
Fake up the TK_SLASH token. | |
static void | terminate_slash (token_t *t, token_t *tfsl, token_t *tlcomp) |
Variables | |
static change_state_t | trans [4][6] |
Transition function for canonify(). |
Definition in file canonify.c.