* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: file.h,v 1.23 2001/07/16 17:22:16 gson Exp $ */
+/* $Id: file.h,v 1.24 2001/07/16 18:33:00 gson Exp $ */
#ifndef ISC_FILE_H
#define ISC_FILE_H 1
* Return ISC_TRUE iff the given file name is the current directory (".").
*/
+isc_boolean_t
+isc_file_ischdiridempotent(const char *filename);
+/*
+ * Return ISC_TRUE if calling chdir(filename) multiple times will give
+ * the same result as calling it once.
+ */
+
const char *
isc_file_basename(const char *filename);
/*
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: file.c,v 1.37 2001/07/16 17:26:44 gson Exp $ */
+/* $Id: file.c,v 1.38 2001/07/16 18:33:01 gson Exp $ */
#include <config.h>
return (ISC_TF(filename[0] == '.' && filename[1] == '\0'));
}
+isc_boolean_t
+isc_file_ischdiridempotent(const char *filename) {
+ REQUIRE(filename != NULL);
+ if (isc_file_isabsolute(filename))
+ return (ISC_TRUE);
+ if (isc_file_iscurrentdir(filename))
+ return (ISC_TRUE);
+ return (ISC_FALSE);
+}
+
const char *
isc_file_basename(const char *filename) {
char *s;
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: file.c,v 1.18 2001/07/16 17:22:17 gson Exp $ */
+/* $Id: file.c,v 1.19 2001/07/16 18:33:02 gson Exp $ */
#include <config.h>
return (ISC_TF(filename[0] == '.' && filename[1] == '\0'));
}
+isc_boolean_t
+isc_file_ischdiridempotent(const char *filename) {
+ REQUIRE(filename != NULL);
+
+ if (isc_file_isabsolute(filename))
+ return (ISC_TRUE);
+ if (filename[0] == '\\')
+ return (ISC_TRUE);
+ if (filename[0] == '/')
+ return (ISC_TRUE);
+ if (isc_file_iscurrentdir(filename))
+ return (ISC_TRUE);
+ return (ISC_FALSE);
+}
+
const char *
isc_file_basename(const char *filename) {
char *s;