commit - 989e6dc3ac24d1ab3ee7a1d66c5f5e5a1a37bb2d
commit + b2f08f618b3d5fcd1a6f816fa73bd7d77d888180
blob - d04fd0377e7b6660df94758f8371e872812f78b8
blob + 922a3a80837ef4e99c931af128227c5463ce981e
--- src/cmd/troff/fns.h
+++ src/cmd/troff/fns.h
void caseev(void);
void envcopy(Env *e1, Env *e2);
void caseel(void);
-void caseei(void);
void caseie(void);
void casexif(void);
void caseif(void);
blob - 72f9bbb6ad4813b7c58cce93f80b2502178929fb
blob + 2c7d3287ba98116598ddf6f26f0243c37196c6b1
--- src/cmd/troff/n5.c
+++ src/cmd/troff/n5.c
#include "fns.h"
#include "ext.h"
-int iflist[NIF]; /* whether 'else' is true */
+int iflist[NIF];
int ifx;
int ifnum = 0; /* trying numeric expression for .if or .ie condition */
{
*e1 = *e2; /* rumor hath that this fails on some machines */
}
-
-void caseei(void)
-{
- if (--ifx < 0) {
- ifx = 0;
- iflist[0] = 0;
- }
- caseif1(1);
- ifx++;
-}
void caseel(void)
{
caseif1(2);
}
+
void caseie(void)
{
if (ifx >= NIF) {
ifx = 0;
edone(040);
}
- iflist[ifx] = 1;
caseif1(1);
ifx++;
}
+
void caseif(void)
{
caseif1(0);
int notflag, true;
Tchar i;
- if (x == 2) { /* .el */
+ if (x == 2) {
notflag = 0;
true = iflist[ifx];
goto i1;
}
i1:
true ^= notflag;
- if (x == 1) { /* .ie or .ei */
- true = true && iflist[ifx];
- iflist[ifx] = iflist[ifx] && !true;
- }
+ if (x == 1)
+ iflist[ifx] = !true;
if (true) {
i2:
while ((cbits(i = getch())) == ' ')
blob - 27a0ff3dd64e33178a3915b348d738bab915c28c
blob + a80cec6437edd23dfd4e7ec144b8a0d061e126b7
--- src/cmd/troff/ni.c
+++ src/cmd/troff/ni.c
C(PAIR('n', 'r'), casenr),
C(PAIR('i', 'f'), caseif),
C(PAIR('i', 'e'), caseie),
- C(PAIR('e', 'i'), caseei),
C(PAIR('e', 'l'), caseel),
C(PAIR('p', 'o'), casepo),
C(PAIR('t', 'l'), casetl),