width integer output buffer size in bytes
charleft integer bytes left in output buffer
timenow integer seconds since the UNIX epoch
-me string the user's mailbox
+me string the user's mailbox (username)
+myhost string the user's local hostname
+myname string the user's name
eq literal boolean \fInum\fR == \fIarg\fR
ne literal boolean \fInum\fR != \fIarg\fR
gt literal boolean \fInum\fR > \fIarg\fR
.fi
.RE
.PP
+The (\fIme\fR\^) function returns the username of the current user. The
+(\fImyhost\fR\^) function returns the
+.B localname
+entry in
+.IR mts.conf ,
+or the local hostname if
+.B localname
+is not configured. The (\fImyname\fR\^) function will return the value of
+the
+.B SIGNATURE
+environment variable if set, otherwise will return the passwd GECOS field for
+the current user.
+.PP
The following functions require a date component as an argument:
.PP
.RS 5
#include <h/tws.h>
#include <h/fmt_scan.h>
#include <h/fmt_compile.h>
+#include <h/mts.h>
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
#define TF_NOW 6 /* special - get current unix time */
#define TF_EXPR_SV 7 /* like expr but save current str reg */
#define TF_NOP 8 /* like expr but no result */
+#define TF_MYNAME 9 /* special - get current name of user */
+#define TF_MYHOST 10 /* special - get "local" hostname */
/* ftable->flags */
/* NB that TFL_PUTS is also used to decide whether the test
{ "dat", TF_NUM, FT_LV_DAT, 0, TFL_PUTN },
{ "strlen", TF_NONE, FT_LV_STRLEN, 0, TFL_PUTN },
{ "me", TF_MYBOX, FT_LS_LIT, 0, TFL_PUTS },
+ { "myname", TF_MYNAME, FT_LS_LIT, 0, TFL_PUTS },
+ { "myhost", TF_MYHOST, FT_LS_LIT, 0, TFL_PUTS },
{ "plus", TF_NUM, FT_LV_PLUS_L, 0, TFL_PUTN },
{ "minus", TF_NUM, FT_LV_MINUS_L, 0, TFL_PUTN },
{ "divide", TF_NUM, FT_LV_DIVIDE_L, 0, TFL_PUTN },
#define CERROR(str) compile_error (str, cp)
/*
- * external prototypes
- */
-extern char *getusername(void);
-
-/*
* static prototypes
*/
static struct ftable *lookup(char *);
LS(t->f_type, getusername());
break;
+ case TF_MYNAME:
+ LS(t->f_type, getfullname());
+ break;
+
+ case TF_MYHOST:
+ LS(t->f_type, LocalName(0));
+ break;
+
case TF_NOW:
LV(t->f_type, time((time_t *) 0));
break;