DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T r

⟦562cc5b76⟧ TextFile

    Length: 2349 (0x92d)
    Types: TextFile
    Names: »remind.macros«

Derivation

└─⟦8648bda34⟧ Bits:30007244 EUUGD5_II: X11R5
    └─⟦87c3ac0e0⟧ »./contrib-3/contrib-3.00« 
        └─⟦de8ce1454⟧ 
            └─⟦this⟧ »contrib/lib/iv/src/bin/alert/remind.macros« 

TextFile

#ifndef REMIND_MACROS
#define REMIND_MACROS

/*
 * a set of macros to aid in creating beautiful reminders with remind(1)
 * 
 *	some points to note -
 *
 *	    getting certain characters into the final output is hard -
 *		instead, use the following substitutions
 *		    for '	    use ▶01◀ ( character \001 )
 *		    for ;	    use ▶02◀ ( character \002 )
 *		    for \	    use ▶03◀ ( character \003 )
 *		    for newline	    use ;
 *
 *	    use DOSHOWTIME to incorporate the output of a command
 *		executed at the time the reminder appears on the screen
 *	    use DOPOSTTIME for commands to be executed at the time
 *		"remind" is run
 *
 *	    HEAD centers the text, and underlines it with **'s
 *	    COMMENT is useful for text that should not appear in the
 *		reminder, but is needed to flag a time or date
 *	    PAD fills the remainder of the line with spaces, so that the
 *		dialog will in fact be the right width - use it at least
 *		once if using centered text
 *
 *	    NL causes a new line
 *	    RMARG, LMARG and MARGINS set the margin positions
 *
 *	    use ;; for a new paragraph
 */

/* some (nroff) formatting macros */

#define RMARG(r).ll r/**/m
#define LMARG(l).in l
#define MARGINS(l,r)LMARG(l);RMARG(r)
#define NL .br
#define LINES(count).br;.sp count
#define LINE LINES(1)
#define PAD \\l▶01◀|\\n(.lu\\ ▶01◀
#define RAGGED .na
#define CENTRE .ad c
#define FILL .ad b
#define LEFT .ad l
#define RIGHT .ad r
#define COMMENT(text).\\" text "
#define HEAD(text).ce;text;.ce;\\l▶01◀\\n(.nu\\&*▶01◀;PAD

/* macros which will cause commands to be executed at various times */

#define date /bin/date
#define awk /bin/awk
#define cat /bin/cat

#define DOPOSTTIME(command)'`command`'
#define DOSHOWTIME(command)'"\'\`command\`\'"'
#define DATE DOSHOWTIME((date | awk '{OFS=\"▶03◀ \";print \$1,\$2,\$3}'))
#define TIME DOSHOWTIME((date | awk '{split(\$4,time,\":\");print time[1] \":\" time[2];}'))
#define INCLUDE(name)DOSHOWTIME(cat name)

/* these simplify regular postings */

#define DAILY(time)COMMENT(every day time)
#define MONDAYS(time)COMMENT(every Mon time)
#define TUESDAYS(time)COMMENT(every Tue time)
#define WEDNESDAYS(time)COMMENT(every Wed time)
#define THURSDAYS(time)COMMENT(every Thu time)
#define FRIDAYS(time)COMMENT(every Fri time)
#define SATURDAYS(time)COMMENT(every Sat time)
#define SUNDAYS(time)COMMENT(every Sun time)

#endif