comparison octave-config.cc.in @ 8092:6a292b0fa88c

mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
author John W. Eaton <jwe@octave.org>
date Mon, 08 Sep 2008 16:01:08 -0400
parents 4e7527a7b3f9
children eb63fbe60fab
comparison
equal deleted inserted replaced
8091:4e7527a7b3f9 8092:6a292b0fa88c
50 " LIBEXECDIR VERSION\n" 50 " LIBEXECDIR VERSION\n"
51 "\n" 51 "\n"
52 " -v, --version Print the Octave version number.\n" 52 " -v, --version Print the Octave version number.\n"
53 "\n"; 53 "\n";
54 54
55 static std::string substitute_prefix(const std::string& s, const std::string& prefix, const std::string new_prefix) 55 static std::string
56 substitute_prefix (const std::string& s, const std::string& prefix,
57 const std::string new_prefix)
56 { 58 {
57 std::string retval = s; 59 std::string retval = s;
58 60
59 if (!prefix.empty() && new_prefix != prefix) 61 if (!prefix.empty () && new_prefix != prefix)
60 { 62 {
61 int len = prefix.length(); 63 int len = prefix.length ();
62 if (retval.find(prefix) == 0) 64 if (retval.find (prefix) == 0)
63 retval.replace(0, len, new_prefix); 65 retval.replace (0, len, new_prefix);
64 } 66 }
65 67
66 #if defined (__WIN32__) && ! defined (_POSIX_VERSION) 68 #if defined (__WIN32__) && ! defined (_POSIX_VERSION)
67 std::replace(retval.begin(), retval.end(), '/', '\\'); 69 std::replace (retval.begin (), retval.end (), '/', '\\');
68 #endif 70 #endif
69 71
70 return retval; 72 return retval;
71 } 73 }
72 74
73 static void initialize(void) 75 static void
76 initialize (void)
74 { 77 {
75 if (initialized) 78 if (initialized)
76 return; 79 return;
77 80
78 initialized = true; 81 initialized = true;
79 82
80 const char *homestr = getenv("OCTAVE_HOME"); 83 const char *homestr = getenv ("OCTAVE_HOME");
81 OCTAVE_HOME = (homestr ? homestr : ""); 84 OCTAVE_HOME = (homestr ? homestr : "");
82 PREFIX = %OCTAVE_PREFIX%; 85 PREFIX = %OCTAVE_PREFIX%;
83 86
84 #if defined (__WIN32__) && ! defined (_POSIX_VERSION) 87 #if defined (__WIN32__) && ! defined (_POSIX_VERSION)
85 int n = 1024; 88 int n = 1024;
86 89
87 std::string bin_dir (n, '\0'); 90 std::string bin_dir (n, '\0');
88 91
89 while (true) 92 while (true)
90 { 93 {
91 int status = GetModuleFileName (0, &bin_dir[0], n); 94 int status = GetModuleFileName (0, &bin_dir[0], n);
92 95
93 if (status < n) 96 if (status < n)
94 { 97 {
95 bin_dir.resize (status); 98 bin_dir.resize (status);
96 break; 99 break;
97 } 100 }
98 else 101 else
99 { 102 {
100 n *= 2; 103 n *= 2;
101 bin_dir.resize (n); 104 bin_dir.resize (n);
102 } 105 }
103 } 106 }
104 107
105 if (! bin_dir.empty ()) 108 if (! bin_dir.empty ())
106 { 109 {
107 size_t pos = bin_dir.rfind ("\\bin\\"); 110 size_t pos = bin_dir.rfind ("\\bin\\");
108 111
109 if (pos != std::string::npos) 112 if (pos != std::string::npos)
110 OCTAVE_HOME = bin_dir.substr (0, pos); 113 OCTAVE_HOME = bin_dir.substr (0, pos);
111 } 114 }
112 #endif 115 #endif
113 116
114 vars["API_VERSION"] = %OCTAVE_API_VERSION%; 117 vars["API_VERSION"] = %OCTAVE_API_VERSION%;
115 vars["CANONICAL_HOST_TYPE"] = %OCTAVE_CANONICAL_HOST_TYPE%; 118 vars["CANONICAL_HOST_TYPE"] = %OCTAVE_CANONICAL_HOST_TYPE%;
116 vars["DEFAULT_PAGER"] = %OCTAVE_DEFAULT_PAGER%; 119 vars["DEFAULT_PAGER"] = %OCTAVE_DEFAULT_PAGER%;
117 vars["ARCHLIBDIR"] = substitute_prefix (%OCTAVE_ARCHLIBDIR%, PREFIX, OCTAVE_HOME); 120 vars["ARCHLIBDIR"] = substitute_prefix (%OCTAVE_ARCHLIBDIR%, PREFIX, OCTAVE_HOME);
118 vars["BINDIR"] = substitute_prefix (%OCTAVE_BINDIR%, PREFIX, OCTAVE_HOME); 121 vars["BINDIR"] = substitute_prefix (%OCTAVE_BINDIR%, PREFIX, OCTAVE_HOME);
119 vars["DATADIR"] =substitute_prefix (%OCTAVE_DATADIR%, PREFIX, OCTAVE_HOME); 122 vars["DATADIR"] =substitute_prefix (%OCTAVE_DATADIR%, PREFIX, OCTAVE_HOME);
120 vars["DATAROOTDIR"] =substitute_prefix (%OCTAVE_DATAROOTDIR%, PREFIX, OCTAVE_HOME); 123 vars["DATAROOTDIR"] =substitute_prefix (%OCTAVE_DATAROOTDIR%, PREFIX, OCTAVE_HOME);
121 vars["EXEC_PREFIX"] =substitute_prefix (%OCTAVE_EXEC_PREFIX%, PREFIX, OCTAVE_HOME); 124 vars["EXEC_PREFIX"] =substitute_prefix (%OCTAVE_EXEC_PREFIX%, PREFIX, OCTAVE_HOME);
122 vars["FCNFILEDIR"] =substitute_prefix (%OCTAVE_FCNFILEDIR%, PREFIX, OCTAVE_HOME); 125 vars["FCNFILEDIR"] =substitute_prefix (%OCTAVE_FCNFILEDIR%, PREFIX, OCTAVE_HOME);
123 vars["IMAGEDIR"] =substitute_prefix (%OCTAVE_IMAGEDIR%, PREFIX, OCTAVE_HOME); 126 vars["IMAGEDIR"] =substitute_prefix (%OCTAVE_IMAGEDIR%, PREFIX, OCTAVE_HOME);
124 vars["INCLUDEDIR"] =substitute_prefix (%OCTAVE_INCLUDEDIR%, PREFIX, OCTAVE_HOME); 127 vars["INCLUDEDIR"] =substitute_prefix (%OCTAVE_INCLUDEDIR%, PREFIX, OCTAVE_HOME);
125 vars["INFODIR"] =substitute_prefix (%OCTAVE_INFODIR%, PREFIX, OCTAVE_HOME); 128 vars["INFODIR"] =substitute_prefix (%OCTAVE_INFODIR%, PREFIX, OCTAVE_HOME);
126 vars["INFOFILE"] =substitute_prefix (%OCTAVE_INFOFILE%, PREFIX, OCTAVE_HOME); 129 vars["INFOFILE"] =substitute_prefix (%OCTAVE_INFOFILE%, PREFIX, OCTAVE_HOME);
127 vars["LIBDIR"] =substitute_prefix (%OCTAVE_LIBDIR%, PREFIX, OCTAVE_HOME); 130 vars["LIBDIR"] =substitute_prefix (%OCTAVE_LIBDIR%, PREFIX, OCTAVE_HOME);
128 vars["LIBEXECDIR"] =substitute_prefix (%OCTAVE_LIBEXECDIR%, PREFIX, OCTAVE_HOME); 131 vars["LIBEXECDIR"] =substitute_prefix (%OCTAVE_LIBEXECDIR%, PREFIX, OCTAVE_HOME);
129 vars["LOCALAPIARCHLIBDIR"] =substitute_prefix (%OCTAVE_LOCALAPIARCHLIBDIR%, PREFIX, OCTAVE_HOME); 132 vars["LOCALAPIARCHLIBDIR"] =substitute_prefix (%OCTAVE_LOCALAPIARCHLIBDIR%, PREFIX, OCTAVE_HOME);
130 vars["LOCALAPIFCNFILEDIR"] =substitute_prefix (%OCTAVE_LOCALAPIFCNFILEDIR%, PREFIX, OCTAVE_HOME); 133 vars["LOCALAPIFCNFILEDIR"] =substitute_prefix (%OCTAVE_LOCALAPIFCNFILEDIR%, PREFIX, OCTAVE_HOME);
131 vars["LOCALAPIOCTFILEDIR"] =substitute_prefix (%OCTAVE_LOCALAPIOCTFILEDIR%, PREFIX, OCTAVE_HOME); 134 vars["LOCALAPIOCTFILEDIR"] =substitute_prefix (%OCTAVE_LOCALAPIOCTFILEDIR%, PREFIX, OCTAVE_HOME);
132 vars["LOCALARCHLIBDIR"] =substitute_prefix (%OCTAVE_LOCALARCHLIBDIR%, PREFIX, OCTAVE_HOME); 135 vars["LOCALARCHLIBDIR"] =substitute_prefix (%OCTAVE_LOCALARCHLIBDIR%, PREFIX, OCTAVE_HOME);
133 vars["LOCALFCNFILEDIR"] =substitute_prefix (%OCTAVE_LOCALFCNFILEDIR%, PREFIX, OCTAVE_HOME); 136 vars["LOCALFCNFILEDIR"] =substitute_prefix (%OCTAVE_LOCALFCNFILEDIR%, PREFIX, OCTAVE_HOME);
134 vars["LOCALOCTFILEDIR"] =substitute_prefix (%OCTAVE_LOCALOCTFILEDIR%, PREFIX, OCTAVE_HOME); 137 vars["LOCALOCTFILEDIR"] =substitute_prefix (%OCTAVE_LOCALOCTFILEDIR%, PREFIX, OCTAVE_HOME);
135 vars["LOCALSTARTUPFILEDIR"] =substitute_prefix (%OCTAVE_LOCALSTARTUPFILEDIR%, PREFIX, OCTAVE_HOME); 138 vars["LOCALSTARTUPFILEDIR"] =substitute_prefix (%OCTAVE_LOCALSTARTUPFILEDIR%, PREFIX, OCTAVE_HOME);
136 vars["LOCALVERARCHLIBDIR"] =substitute_prefix (%OCTAVE_LOCALVERARCHLIBDIR%, PREFIX, OCTAVE_HOME); 139 vars["LOCALVERARCHLIBDIR"] =substitute_prefix (%OCTAVE_LOCALVERARCHLIBDIR%, PREFIX, OCTAVE_HOME);
137 vars["LOCALVERFCNFILEDIR"] =substitute_prefix (%OCTAVE_LOCALVERFCNFILEDIR%, PREFIX, OCTAVE_HOME); 140 vars["LOCALVERFCNFILEDIR"] =substitute_prefix (%OCTAVE_LOCALVERFCNFILEDIR%, PREFIX, OCTAVE_HOME);
138 vars["LOCALVEROCTFILEDIR"] =substitute_prefix (%OCTAVE_LOCALVEROCTFILEDIR%, PREFIX, OCTAVE_HOME); 141 vars["LOCALVEROCTFILEDIR"] =substitute_prefix (%OCTAVE_LOCALVEROCTFILEDIR%, PREFIX, OCTAVE_HOME);
139 vars["MAN1DIR"] =substitute_prefix (%OCTAVE_MAN1DIR%, PREFIX, OCTAVE_HOME); 142 vars["MAN1DIR"] =substitute_prefix (%OCTAVE_MAN1DIR%, PREFIX, OCTAVE_HOME);
140 vars["MAN1EXT"] = %OCTAVE_MAN1EXT%; 143 vars["MAN1EXT"] = %OCTAVE_MAN1EXT%;
141 vars["MANDIR"] =substitute_prefix (%OCTAVE_MANDIR%, PREFIX, OCTAVE_HOME); 144 vars["MANDIR"] =substitute_prefix (%OCTAVE_MANDIR%, PREFIX, OCTAVE_HOME);
142 vars["OCTFILEDIR"] =substitute_prefix (%OCTAVE_OCTFILEDIR%, PREFIX, OCTAVE_HOME); 145 vars["OCTFILEDIR"] =substitute_prefix (%OCTAVE_OCTFILEDIR%, PREFIX, OCTAVE_HOME);
143 vars["OCTINCLUDEDIR"] =substitute_prefix (%OCTAVE_OCTINCLUDEDIR%, PREFIX, OCTAVE_HOME); 146 vars["OCTINCLUDEDIR"] =substitute_prefix (%OCTAVE_OCTINCLUDEDIR%, PREFIX, OCTAVE_HOME);
144 vars["OCTLIBDIR"] =substitute_prefix (%OCTAVE_OCTLIBDIR%, PREFIX, OCTAVE_HOME); 147 vars["OCTLIBDIR"] =substitute_prefix (%OCTAVE_OCTLIBDIR%, PREFIX, OCTAVE_HOME);
145 vars["PREFIX"] = (OCTAVE_HOME.empty() ? PREFIX : OCTAVE_HOME); 148 vars["PREFIX"] = (OCTAVE_HOME.empty() ? PREFIX : OCTAVE_HOME);
146 vars["STARTUPFILEDIR"] =substitute_prefix (%OCTAVE_STARTUPFILEDIR%, PREFIX, OCTAVE_HOME); 149 vars["STARTUPFILEDIR"] =substitute_prefix (%OCTAVE_STARTUPFILEDIR%, PREFIX, OCTAVE_HOME);
147 vars["VERSION"] = %OCTAVE_VERSION%; 150 vars["VERSION"] = %OCTAVE_VERSION%;
148 } 151 }
149 152
150 int main(int argc, char **argv) 153 int
154 main (int argc, char **argv)
151 { 155 {
152 initialize(); 156 initialize ();
153 157
154 if (argc == 1) 158 if (argc == 1)
155 { 159 {
156 std::cout << usage_msg << std::endl; 160 std::cout << usage_msg << std::endl;
157 return 1; 161 return 1;
158 } 162 }
159 163
160 for (int i=1; i<argc; i++) 164 for (int i = 1; i < argc; i++)
161 { 165 {
162 std::string arg(argv[i]); 166 std::string arg (argv[i]);
163 167
164 if (arg == "-h" || arg == "-?" || arg == "--help") 168 if (arg == "-h" || arg == "-?" || arg == "--help")
165 { 169 {
166 std::cout << usage_msg << std::endl; 170 std::cout << usage_msg << std::endl;
167 std::cout << help_msg; 171 std::cout << help_msg;
168 return 0; 172 return 0;
169 } 173 }
170 else if (arg == "--m-site-dir") 174 else if (arg == "--m-site-dir")
171 std::cout << vars["LOCALVERFCNFILEDIR"] << std::endl; 175 std::cout << vars["LOCALVERFCNFILEDIR"] << std::endl;
172 else if (arg == "--oct-site-dir") 176 else if (arg == "--oct-site-dir")
173 std::cout << vars["LOCALVEROCTFILEDIR"] << std::endl; 177 std::cout << vars["LOCALVEROCTFILEDIR"] << std::endl;
174 else if (arg == "-v" || arg == "--version") 178 else if (arg == "-v" || arg == "--version")
175 std::cout << vars["VERSION"] << std::endl; 179 std::cout << vars["VERSION"] << std::endl;
176 else if (arg == "-p" || arg == "--print") 180 else if (arg == "-p" || arg == "--print")
177 { 181 {
178 if (i < argc-1) 182 if (i < argc-1)
179 { 183 {
180 arg = argv[++i]; 184 arg = argv[++i];
181 std::cout << vars[arg] << std::endl; 185 std::cout << vars[arg] << std::endl;
182 } 186 }
183 else 187 else
184 { 188 {
185 std::cerr << "octave-config: " << arg << " options requires argument" << std::endl; 189 std::cerr << "octave-config: " << arg
186 return 1; 190 << " options requires argument" << std::endl;
187 } 191 return 1;
188 } 192 }
189 else 193 }
190 { 194 else
191 std::cerr << "octave-config: unrecognized argument " << arg << std::endl; 195 {
192 return 1; 196 std::cerr << "octave-config: unrecognized argument " << arg << std::endl;
193 } 197 return 1;
194 } 198 }
195 199 }
196 return 0; 200
201 return 0;
197 } 202 }