44class EST_Pathname :
public EST_String {
52 EST_Pathname(EST_String s) :
EST_String(s) { this->setup(); };
53 EST_Pathname(
const char *s) :
EST_String(s) { this->setup(); };
55 static EST_Pathname construct(EST_Pathname dir, EST_String basename, EST_String extension);
56 static EST_Pathname construct(EST_Pathname dir, EST_String filename);
59 EST_Pathname directory(
void)
const;
60 EST_Pathname filename(
void)
const;
61 EST_String basename(
int remove_all=0)
const;
62 EST_String extension(
void)
const;
64 EST_Pathname as_file(
void)
const;
65 EST_Pathname as_directory(
void)
const;
67 int is_absolute(
void)
const;
68 inline int is_relative(
void)
const {
return !is_absolute();};
69 int is_dirname(
void)
const;
70 inline int is_filename(
void)
const {
return !is_dirname(); };
74 static EST_Pathname append(EST_Pathname directory, EST_Pathname addition);
76 static void divide(EST_Pathname path,
int at, EST_Pathname &start, EST_Pathname &end);
78 friend EST_Pathname operator + (
const EST_Pathname p,
const EST_Pathname addition);
79 friend EST_Pathname operator + (
const char *p,
const EST_Pathname addition);
82 EST_Pathname &operator += (
const char * addition)
83 {
return (*
this) = append(*
this, addition); }
84 EST_Pathname &operator += (
const EST_String addition)
85 {
return (*
this) = append(*
this, addition); }
86 EST_Pathname &operator += (
const EST_Pathname addition)
87 {
return (*
this) = append(*
this, addition); }
89 EST_Pathname operator + (
const EST_String addition)
90 {
return append(*
this, EST_Pathname(addition)); }
91 EST_Pathname operator + (
const char *addition)
92 {
return append(*
this, EST_Pathname(addition)); }
94 int operator == (
const EST_String thing)
96 int operator == (
const char * thing)
98 int operator != (
const EST_String thing)
100 int operator != (
const char * thing)