1
2 /* Example dynamically-loaded Racket extension, but not a good one.
3
4 For example extensions, see plt/pkgs/mzscheme/mzscheme/examples. */
5
6 #include "escheme.h"
7 #include <time.h>
8
sch_date(int argc,Scheme_Object ** argv)9 static Scheme_Object *sch_date(int argc, Scheme_Object **argv)
10 {
11 time_t clock;
12 struct tm *now;
13 char *str;
14
15 if (argc)
16 scheme_wrong_count("date", 0, 0, argc, argv);
17
18 time(&clock);
19 now = localtime(&clock);
20 str = asctime(now);
21
22 /* Get rid of newline */
23 str[24] = 0;
24
25 return scheme_make_string(str);
26 }
27
scheme_reload(Scheme_Env * env)28 Scheme_Object *scheme_reload(Scheme_Env *env)
29 {
30 scheme_add_global("date", scheme_make_prim(sch_date), env);
31
32 return scheme_void;
33 }
34
scheme_initialize(Scheme_Env * env)35 Scheme_Object *scheme_initialize(Scheme_Env *env)
36 {
37 return scheme_reload(env);
38 }
39