summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/kuvio/doc-src/macros/carrot/misc/rcs.cd
blob: 61a306e0d6a77ae58dd2600837901ff75c81f36a (plain)
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
%  rcs.cd
%  Anders G S Svensson
%  $Date: 1996/02/10 21:43:45 $
%  $Revision: 1.1 $

%  Convert RCS strings into something palatable.

\def\rcsdate$#1: #2/#3/#4#5 #6 ${\dateformat#4#5 #3 #2 }

%  #1#2 <- day
%  #3   <- month
%  #4   <- year
%
\def\DMYformat#1#2 #3 #4 {\dayformat#1#2 \monthname{#3} #4}
\def\MDYformat#1#2 #3 #4 {\monthname{#3} \dayformat#1#2, #4}
\def\stampformat#1#2 #3 #4 {#1#2 \shortmonthname{#3} #4}

\DeclareOption{DMY}{\let\dateformat\DMYformat}
\DeclareOption{MDY}{\let\dateformat\MDYformat}
\DeclareOption{stamp}{\let\dateformat\stampformat}

\def\dayformat#1#2{\ifnum#1>0 #1\fi#2}

\DeclareOption{leadingzero}{\let\dayformat\relax}

\def\monthname#1{%
   \ifcase#1\relax
   \or January\or February\or March\or April\or May\or June\or
   July\or August\or September\or October\or November\or December\fi}

\def\shortmonthname#1{%
   \ifcase#1\relax
   \or Jan\or Feb\or Mar\or Apr\or May\or Jun\or
   Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi}

\DeclareOption{shortmonths}{\let\monthname\shortmonthname}

\def\rcsrevision$#1: #2 ${Revision \revisionformat#2 }

\def\revisionformat#1 {#1}

\def\r@patchlevels{\def\revisionformat##1 {\rcsstrip{13}{##1}}}
\def\r@shortrevisions{\def\revisionformat##1 {\rcsstrip3{##1}}}

\DeclareOption{patchlevels}{\r@patchlevels}
\DeclareOption{shortrevisions}{\r@shortrevisions}

\def\rcsstrip#1#2{{\count0=1 \r@rcspeel{#1}#2. }}

\def\r@rcspeel#1#2.#3 {%
   \r@scan#10 {\r@separate#2}%
   \def\r@tmp{#3}%
   \ifx\r@tmp\empty
      \let\r@action\relax
   \else
      \def\r@action{\advance\count0 by 1 \r@rcspeel{#1}#3 }%
   \fi
   \r@action}
\def\r@separate{\def\r@separate{.}}

\def\r@scan#1#2 #3{%
   \ifnum#1=0
      \def\r@action{#3}%
   \else
      \ifnum\count0=#1
         \let\r@action\relax
      \else
         \def\r@action{\r@scan#2 {#3}}%
      \fi
   \fi
   \r@action}
   
\ExecuteOptions{MDY}