aboutsummaryrefslogtreecommitdiff
path: root/hcalc.c
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2024-01-03 00:35:20 -0500
committerB. Watson <urchlay@slackware.uk>2024-01-03 00:35:20 -0500
commitba9e5e94e3c0622a0dc5a91dcb0fe671cb35c07c (patch)
treef1049a0583a3d4dd24521fa5e6fd355c1493c813 /hcalc.c
downloadhcalc-ba9e5e94e3c0622a0dc5a91dcb0fe671cb35c07c.tar.gz
initial commit
Diffstat (limited to 'hcalc.c')
-rw-r--r--hcalc.c68
1 files changed, 68 insertions, 0 deletions
diff --git a/hcalc.c b/hcalc.c
new file mode 100644
index 0000000..ba111ba
--- /dev/null
+++ b/hcalc.c
@@ -0,0 +1,68 @@
+/* Copyright 1998 DJ Delorie <dj@delorie.com>
+ Distributed under the terms of the GNU GPL
+ http://www.delorie.com/store/hcalc/
+ Revisions copyright 2007,
+ Theodore Kilgore <kilgota@auburn.edu>
+ More revisions copyright 2023, B. Watson <urchlay@slackware.uk>
+*/
+#include <stdlib.h>
+#include <string.h>
+#include "hcalc.h"
+
+char *self;
+
+void version(void) {
+ printf("%s %s\n", SELF, VERSION);
+ exit(0);
+}
+
+void usage(const char *self, const char *msg) {
+ if(msg) fprintf(stderr, "%s: %s\n", self, msg);
+ printf("%s %s\nUsage: %s [-default] [-small|-medium|-large] [-dec|-hex|-oct|-bin] [-quiet] [--version] [--help]\n", SELF, VERSION, self);
+ exit(msg != NULL);
+}
+
+int
+main(int argc, char **argv)
+{
+ self = argv[0];
+
+ setbuf(stdout, 0);
+
+ if(argc >= 2 && strcmp(argv[1], "-default") == 0) {
+ /* don't load the config file */
+ } else {
+ load_config();
+ }
+ atexit(save_config);
+
+ while(argv++, --argc) {
+ if(strcmp(*argv, "-small") == 0)
+ winsize = 0;
+ else if(strcmp(*argv, "-medium") == 0)
+ winsize = 1;
+ else if(strcmp(*argv, "-large") == 0)
+ winsize = 2;
+ else if(strcmp(*argv, "-dec") == 0)
+ base = 10;
+ else if(strcmp(*argv, "-hex") == 0)
+ base = 16;
+ else if(strcmp(*argv, "-oct") == 0)
+ base = 8;
+ else if(strcmp(*argv, "-bin") == 0)
+ base = 2;
+ else if(strcmp(*argv, "-quiet") == 0)
+ quiet = 1;
+ else if(strcmp(*argv, "--help") == 0)
+ usage(self, NULL);
+ else if(strcmp(*argv, "--version") == 0)
+ version();
+ else if(strcmp(*argv, "-default") == 0)
+ { /* do nothing */ }
+ else usage(self, "Invalid command-line option %s");
+ }
+
+ setup_x();
+ load_pixmaps();
+ process_input();
+}