summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/Makefile2
-rw-r--r--usr.bin/date/Makefile (renamed from usr.bin/time/Makefile)2
-rw-r--r--usr.bin/date/date.c (renamed from usr.bin/time/time.c)39
-rw-r--r--usr.bin/mrow/mrow.c3
-rw-r--r--usr.bin/osh/osh.c2
5 files changed, 41 insertions, 7 deletions
diff --git a/usr.bin/Makefile b/usr.bin/Makefile
index 8b22b73..9b241d8 100644
--- a/usr.bin/Makefile
+++ b/usr.bin/Makefile
@@ -9,7 +9,7 @@ all:
make -C kmsg/ $(ARGS)
make -C fetch/ $(ARGS)
make -C kfgwm/ $(ARGS)
- make -C time/ $(ARGS)
+ make -C date/ $(ARGS)
make -C mex/ $(ARGS)
make -C beep/ $(ARGS)
make -C mrow/ $(ARGS)
diff --git a/usr.bin/time/Makefile b/usr.bin/date/Makefile
index 9ac98b4..09ff299 100644
--- a/usr.bin/time/Makefile
+++ b/usr.bin/date/Makefile
@@ -2,5 +2,5 @@ include user.mk
CFILES = $(shell find . -name "*.c")
-$(ROOT)/base/usr/bin/time:
+$(ROOT)/base/usr/bin/date:
gcc $(CFILES) -Iinclude/ -o $@ $(INTERNAL_CFLAGS)
diff --git a/usr.bin/time/time.c b/usr.bin/date/date.c
index 2f3b11f..a47e3eb 100644
--- a/usr.bin/time/time.c
+++ b/usr.bin/date/date.c
@@ -28,14 +28,34 @@
*/
#include <sys/time.h>
+#include <sys/cdefs.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
+#define MONTHS_PER_YEAR 12
+#define DAYS_PER_WEEK 7
+
+/* Months of the year */
+static const char *montab[] = {
+ "Jan", "Feb", "Mar",
+ "Apr", "May", "Jun",
+ "Jul", "Aug", "Sep",
+ "Oct", "Nov", "Dec"
+};
+
+/* Days of the week */
+static const char *daytab[] = {
+ "Sat", "Sun", "Mon",
+ "Tue", "Wed", "Thu",
+ "Fri"
+};
+
int
main(void)
{
- char date_str[16];
+ const char *day, *month;
+ char date_str[32];
struct date d;
int rtc_fd;
@@ -46,8 +66,21 @@ main(void)
read(rtc_fd, &d, sizeof(d));
close(rtc_fd);
- snprintf(date_str, sizeof(date_str), "%02d:%02d:%02d\n",
- d.hour, d.min, d.sec);
+ /* This should not happen */
+ if (__unlikely(d.month > MONTHS_PER_YEAR)) {
+ printf("got bad month %d from RTC\n", d.month);
+ return -1;
+ }
+ if (__unlikely(d.month == 0 || d.day == 0)) {
+ printf("got zero month/day from RTC\n");
+ return -1;
+ }
+
+ day = daytab[d.day % DAYS_PER_WEEK];
+ month = montab[d.month - 1];
+
+ snprintf(date_str, sizeof(date_str), "%s %s %d %02d:%02d:%02d\n",
+ day, month, d.day, d.hour, d.min, d.sec);
fputs(date_str, stdout);
return 0;
}
diff --git a/usr.bin/mrow/mrow.c b/usr.bin/mrow/mrow.c
index ac4ee0d..ea9594a 100644
--- a/usr.bin/mrow/mrow.c
+++ b/usr.bin/mrow/mrow.c
@@ -36,6 +36,7 @@
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
+#include <stdbool.h>
#define IS_ASCII(C) ((C) > 0 && (C) < 127)
@@ -45,7 +46,7 @@
#define SPRITE_WIDTH 20
#define SPRITE_HEIGHT 20
-#define MAX_MOUSE_SPEED 3
+#define MAX_MOUSE_SPEED 2
#define MIN_MOUSE_SPEED 1
#define PLAYER_SPEED 30
diff --git a/usr.bin/osh/osh.c b/usr.bin/osh/osh.c
index db8865d..efb159e 100644
--- a/usr.bin/osh/osh.c
+++ b/usr.bin/osh/osh.c
@@ -55,7 +55,7 @@
"fetch - System information\n" \
"kfg - Start up kfgwm\n" \
"bell - Toggle backspace bell\n" \
- "time - Get the current time\n" \
+ "date - Get the current date\n" \
"clear - Clear the screen\n" \
"exit - Exit the shell"