00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "pathStore.h"
00016
00017 #include "string_utils.h"
00018 #include "pnotify.h"
00019
00020
00021
00022
00023
00024 string
00025 format_path_store(PathStore store) {
00026 switch (store) {
00027 case PS_invalid:
00028 return "invalid";
00029
00030 case PS_relative:
00031 return "relative";
00032
00033 case PS_absolute:
00034 return "absolute";
00035
00036 case PS_rel_abs:
00037 return "rel_abs";
00038
00039 case PS_strip:
00040 return "strip";
00041
00042 case PS_keep:
00043 return "keep";
00044 }
00045 nout << "**unexpected PathStore value: (" << (int)store << ")**";
00046 return "**";
00047 }
00048
00049
00050
00051
00052
00053 ostream &
00054 operator << (ostream &out, PathStore store) {
00055 return out << format_path_store(store);
00056 }
00057
00058
00059
00060
00061
00062
00063
00064 PathStore
00065 string_path_store(const string &str) {
00066 if (cmp_nocase(str, "relative") == 0 ||
00067 cmp_nocase(str, "rel") == 0) {
00068 return PS_relative;
00069
00070 } else if (cmp_nocase(str, "absolute") == 0 ||
00071 cmp_nocase(str, "abs") == 0) {
00072 return PS_absolute;
00073
00074 } else if (cmp_nocase_uh(str, "rel_abs") == 0) {
00075 return PS_rel_abs;
00076
00077 } else if (cmp_nocase(str, "strip") == 0) {
00078 return PS_strip;
00079
00080 } else if (cmp_nocase(str, "keep") == 0) {
00081 return PS_keep;
00082
00083 } else {
00084 return PS_invalid;
00085 }
00086 }