extern const char *lbasename (const char *);
+/* Same, but assumes DOS semantics (drive name, backslash is also a
+ dir separator) regardless of host. */
+
+extern const char *dos_lbasename (const char *);
+
+/* Same, but assumes Unix semantics (absolute paths always start with
+ a slash, only forward slash is accepted as dir separator)
+ regardless of host. */
+
+extern const char *unix_lbasename (const char *);
+
/* A well-defined realpath () that is always compiled in. */
extern char *lrealpath (const char *);
extern double physmem_available (void);
/* Compute the 32-bit CRC of a block of memory. */
-extern unsigned int crc32 (const unsigned char *, int, unsigned int);
+extern unsigned int xcrc32 (const unsigned char *, int, unsigned int);
/* These macros provide a K&R/C89/C++-friendly way of allocating structures
with nice encapsulation. The XDELETE*() macros are technically
extern int strverscmp (const char *, const char *);
#endif
+/* Set the title of a process */
+extern void setproctitle (const char *name, ...);
+
#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
/* Drastically simplified alloca configurator. If we're using GCC,