File: cal.sed.html

package info (click to toggle)
sedsed 2.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,008 kB
  • sloc: sed: 37,239; ansic: 2,395; python: 815; sh: 624; makefile: 95
file content (108 lines) | stat: -rw-r--r-- 11,906 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<html>
<head><meta name="Generator" content="sedsed --htmlize">
<title>Colorized cal.sed</title></head>
<body bgcolor="#000000" text="#ffffff"
      link="#ff00ff" alink="#ff00ff" vlink="#ff00ff">
<pre>
<font color="#00ffff"><b>#n</b></font>
<font color="#8080ff"><b>1</b></font> <font color="#ff6060"><b>{</b></font>
    <font color="#00ffff"><b># Weekday in hold space, day of the month in pattern space</b></font>
    <font color="#ffff00"><b>h</b></font>
    <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b> .*$</b></font><font color="#ff6060"><b>/</b></font><font color="#ff6060"><b>/</b></font>
    <font color="#ffff00"><b>x</b></font>
    <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^.* </b></font><font color="#ff6060"><b>/</b></font><font color="#ff6060"><b>/</b></font>

    <font color="#00ffff"><b># Reduce day of month to 1-7, subtracting 7 repeatedly. Each iteration</b></font>
    <font color="#00ffff"><b># decrements the tenths digit, lowering the day of the month by either 7</b></font>
    <font color="#00ffff"><b># or 14.  The first and third y commands are guaranteed to operate on the</b></font>
    <font color="#00ffff"><b># units.</b></font>
    <font color="#ff00ff"><b>:</b></font><font color="#ff00ff"><b><a name="week">week</a></b></font>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^[123]</b></font><font color="#ff6060"><b>/</b></font> <font color="#ff6060"><b>{</b></font>
        <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^1</b></font><font color="#ff6060"><b>/</b></font>a<font color="#ff6060"><b>/</b></font>
        <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^2</b></font><font color="#ff6060"><b>/</b></font>b<font color="#ff6060"><b>/</b></font>
        <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^3</b></font><font color="#ff6060"><b>/</b></font>c<font color="#ff6060"><b>/</b></font>
        <font color="#ffff00"><b>y</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>9876543210</b></font><font color="#ff6060"><b>/</b></font>5432176543<font color="#ff6060"><b>/</b></font>
        <font color="#ffff00"><b>y</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>abc</b></font><font color="#ff6060"><b>/</b></font>012<font color="#ff6060"><b>/</b></font>
        <font color="#ffff00"><b>b</b></font> <a href="#week">week</a>
    <font color="#ff6060"><b>}</b></font>
    <font color="#ffff00"><b>y</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>89</b></font><font color="#ff6060"><b>/</b></font>12<font color="#ff6060"><b>/</b></font>

    <font color="#00ffff"><b># Each iteration decrements both day and weekday by 1</b></font>
    <font color="#00ffff"><b># (weekday has wrap-around from 0=Sunday to 6=Saturday)</b></font>
    <font color="#ff00ff"><b>:</b></font><font color="#ff00ff"><b><a name="wday">wday</a></b></font>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>01</b></font><font color="#ff6060"><b>/</b></font> <font color="#ff6060"><b>!</b></font><font color="#ff6060"><b>{</b></font>
        <font color="#ffff00"><b>y</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>234567</b></font><font color="#ff6060"><b>/</b></font>123456<font color="#ff6060"><b>/</b></font>
        <font color="#ffff00"><b>x</b></font>
        <font color="#ffff00"><b>y</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>0123456</b></font><font color="#ff6060"><b>/</b></font>6012345<font color="#ff6060"><b>/</b></font>
        <font color="#ffff00"><b>x</b></font>
        <font color="#ffff00"><b>b</b></font> <a href="#wday">wday</a>
    <font color="#ff6060"><b>}</b></font>

    <font color="#00ffff"><b># Prepare a calendar for a 28-day month.  First add the blanks</b></font>
    <font color="#00ffff"><b># depending on the week-day</b></font>
    <font color="#ffff00"><b>x</b></font>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^[1-6]</b></font><font color="#ff6060"><b>/</b></font> <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>$</b></font><font color="#ff6060"><b>/</b></font>    <font color="#ff6060"><b>/</b></font>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^[2-6]</b></font><font color="#ff6060"><b>/</b></font> <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>$</b></font><font color="#ff6060"><b>/</b></font>    <font color="#ff6060"><b>/</b></font>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^[3-6]</b></font><font color="#ff6060"><b>/</b></font> <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>$</b></font><font color="#ff6060"><b>/</b></font>    <font color="#ff6060"><b>/</b></font>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^[4-6]</b></font><font color="#ff6060"><b>/</b></font> <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>$</b></font><font color="#ff6060"><b>/</b></font>    <font color="#ff6060"><b>/</b></font>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^[5-6]</b></font><font color="#ff6060"><b>/</b></font> <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>$</b></font><font color="#ff6060"><b>/</b></font>    <font color="#ff6060"><b>/</b></font>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^6</b></font><font color="#ff6060"><b>/</b></font> <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>$</b></font><font color="#ff6060"><b>/</b></font>    <font color="#ff6060"><b>/</b></font>

    <font color="#00ffff"><b># Then add the header (replacing the week-day) and the days</b></font>
    <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^.</b></font><font color="#ff6060"><b>/</b></font>Sun Mon Tue Wed Thu Fri Sat <font color="#ff6060"><b>/</b></font>
    <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>$</b></font><font color="#ff6060"><b>/</b></font>  1   2   3   4   5   6   7   8   9  10  11  12  13  14 <font color="#ff6060"><b>/</b></font>
    <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>$</b></font><font color="#ff6060"><b>/</b></font> 15  16  17  18  19  20  21  22  23  24  25  26  27  28 <font color="#ff6060"><b>/</b></font>

    <font color="#00ffff"><b># Store in hold space, waiting for the next cycle</b></font>
    <font color="#ffff00"><b>h</b></font>
<font color="#ff6060"><b>}</b></font>

<font color="#8080ff"><b>2</b></font> <font color="#ff6060"><b>{</b></font>
    <font color="#00ffff"><b># Pick the number of days in the month</b></font>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^[469]</b></font><font color="#ff6060"><b>/</b></font> <font color="#ffff00"><b>b</b></font> <a href="#d30">d30</a>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^11</b></font><font color="#ff6060"><b>/</b></font> <font color="#ffff00"><b>b</b></font> <a href="#d30">d30</a>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^[13578]</b></font><font color="#ff6060"><b>/</b></font> <font color="#ffff00"><b>b</b></font> <a href="#d31">d31</a>

    <font color="#00ffff"><b># February. Get the year.  Decide whether we must test the century</b></font>
    <font color="#00ffff"><b># or the 2-digit year, and only keep the two relevant digits.</b></font>
    <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>.* </b></font><font color="#ff6060"><b>/</b></font><font color="#ff6060"><b>/</b></font>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>..00</b></font><font color="#ff6060"><b>/</b></font> <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>..$</b></font><font color="#ff6060"><b>/</b></font><font color="#ff6060"><b>/</b></font>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>....</b></font><font color="#ff6060"><b>/</b></font> <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^..</b></font><font color="#ff6060"><b>/</b></font><font color="#ff6060"><b>/</b></font>

    <font color="#00ffff"><b># Test divisibility by 4</b></font>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>[02468][048]</b></font><font color="#ff6060"><b>/</b></font> <font color="#ffff00"><b>b</b></font> <a href="#d29">d29</a>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>[13579][26]</b></font><font color="#ff6060"><b>/</b></font> <font color="#ffff00"><b>b</b></font> <a href="#d29">d29</a>

    <font color="#ffff00"><b>g</b></font>
    <font color="#ffff00"><b>b</b></font> <a href="#line">line</a>

    <font color="#00ffff"><b># Add days if 28 are not enough</b></font>
    <font color="#ff00ff"><b>:</b></font><font color="#ff00ff"><b><a name="d29">d29</a></b></font>
    <font color="#ffff00"><b>g</b></font>
    <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>$</b></font><font color="#ff6060"><b>/</b></font> 29<font color="#ff6060"><b>/</b></font>
    <font color="#ffff00"><b>b</b></font> <a href="#line">line</a>

    <font color="#ff00ff"><b>:</b></font><font color="#ff00ff"><b><a name="d30">d30</a></b></font>
    <font color="#ffff00"><b>g</b></font>
    <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>$</b></font><font color="#ff6060"><b>/</b></font> 29  30<font color="#ff6060"><b>/</b></font>
    <font color="#ffff00"><b>b</b></font> <a href="#line">line</a>

    <font color="#ff00ff"><b>:</b></font><font color="#ff00ff"><b><a name="d31">d31</a></b></font>
    <font color="#ffff00"><b>g</b></font>
    <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>$</b></font><font color="#ff6060"><b>/</b></font> 29  30  31<font color="#ff6060"><b>/</b></font>

    <font color="#00ffff"><b># Split the calendar in 28-character lines</b></font>
    <font color="#00ffff"><b># could probably be made more efficient...</b></font>
    <font color="#ff00ff"><b>:</b></font><font color="#ff00ff"><b><a name="line">line</a></b></font>
    <font color="#ffff00"><b>h</b></font>
    <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^\<font color="#ff00ff"><b>(</b></font>............................\).*</b></font><font color="#ff6060"><b>/</b></font><font color="#00ff00"><b>\1</b></font><font color="#ff6060"><b>/</b></font>
    <font color="#ffff00"><b>p</b></font>
    <font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>............................</b></font><font color="#ff6060"><b>/</b></font> <font color="#ff6060"><b>!</b></font><font color="#ffff00"><b>q</b></font>
    <font color="#ffff00"><b>g</b></font>
    <font color="#ffff00"><b>s</b></font><font color="#ff6060"><b>/</b></font><font color="#8080ff"><b>^............................</b></font><font color="#ff6060"><b>/</b></font><font color="#ff6060"><b>/</b></font>
    <font color="#ffff00"><b>b</b></font> <a href="#line">line</a>
<font color="#ff6060"><b>}</b></font>

<font color="#00ffff"><b>### colorized by <a href="https://aurelio.net/projects/sedsed/">sedsed</a>, a debugger and code formatter for sed scripts</b></font>

</pre></body></html>