File: path.h

package info (click to toggle)
nget 0.27.1-10
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 3,168 kB
  • ctags: 2,941
  • sloc: cpp: 15,311; python: 4,075; ansic: 239; makefile: 206; sh: 184
file content (54 lines) | stat: -rw-r--r-- 1,860 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
    path.* - attempt to have portable path manipulation
    Copyright (C) 1999-2003  Matthew Mueller <donut AT dakotacom.net>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __NGET__PATH_H__
#define __NGET__PATH_H__

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/types.h>
#include <string>
#include <list>

#ifdef WIN32
inline bool is_pathsep(char c) {return c=='/' || c=='\\';}
bool is_abspath(const char *p);
#define PATHSEP '\\'
#else
inline bool is_pathsep(char c) {return c=='/';}
inline bool is_abspath(const char *p) {return p[0]=='/';}
#define PATHSEP '/'
#endif
inline bool is_abspath(const string &s) {return is_abspath(s.c_str());}

string& path_append(string &a, string b);//modifies and returns 'a'
string path_join(string a, string b);//returns a new string
string path_join(string a, string b, string c);//convenience func

void path_split(string &head, string &tail);

bool direxists(const string &p);
int fexists(const char * f);
inline int fexists(const string &s) {return fexists(s.c_str());}
int fsize(const char * f, off_t *size);
string fcheckpath(const char *fn,string path);
int testmkdir(const char * dir,int mode);
char *goodgetcwd(void);

#endif