summaryrefslogtreecommitdiff
path: root/common.c
diff options
context:
space:
mode:
authorjkar8572 <jkar8572>2001-03-23 12:03:26 +0000
committerjkar8572 <jkar8572>2001-03-23 12:03:26 +0000
commit869fe242340fefe0540fdcf51698ba4c3c8c07bb (patch)
tree950fa3f5997c1e8ee68c0f17d4eaf17abef64f34 /common.c
downloadlinuxquota-869fe242340fefe0540fdcf51698ba4c3c8c07bb.tar.gz
Initial revision
Diffstat (limited to 'common.c')
-rw-r--r--common.c74
1 files changed, 74 insertions, 0 deletions
diff --git a/common.c b/common.c
new file mode 100644
index 0000000..f77f2e5
--- /dev/null
+++ b/common.c
@@ -0,0 +1,74 @@
+/*
+ *
+ * Common things for all utilities
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+
+#include <sys/types.h>
+
+#include "pot.h"
+#include "common.h"
+
+void die(int ret, char *fmtstr, ...)
+{
+ va_list args;
+
+ va_start(args, fmtstr);
+ vfprintf(stderr, fmtstr, args);
+ va_end(args);
+ exit(ret);
+}
+
+void *smalloc(size_t size)
+{
+ void *ret = malloc(size);
+
+ if (!ret) {
+ puts("Not enough memory.\n");
+ exit(3);
+ }
+ return ret;
+}
+
+void sstrncpy(char *d, const char *s, int len)
+{
+ strncpy(d, s, len);
+ d[len - 1] = 0;
+}
+
+void sstrncat(char *d, const char *s, int len)
+{
+ strncat(d, s, len);
+ d[len - 1] = 0;
+}
+
+char *sstrdup(const char *s)
+{
+ char *r = strdup(s);
+
+ if (!r) {
+ puts("Not enough memory.");
+ exit(3);
+ }
+ return r;
+}
+
+void version(void)
+{
+ printf(_("Quota utilities version %s.\n"), QUOTA_VERSION);
+#if defined(RPC) || defined(EXT2_DIRECT)
+ printf(_("Compiled with "));
+#if defined(RPC) && defined(EXT2_DIRECT)
+ puts(_("RPC and EXT2_DIRECT"));
+#elif defined(RPC)
+ puts(_("RPC"));
+#else
+ puts(_("EXT2_DIRECT"));
+#endif /* defined RPC && EXT2_DIRECT */
+#endif /* defined RPC || EXT2_DIRECT */
+}