aboutsummaryrefslogtreecommitdiff
path: root/pkg/xtools/gstrdetab.x
blob: b51ac019edf34c23b7860ae21eca38beb956287f (plain) (blame)
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
# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.

# GSTRDETAB -- Procedure to remove tabs from a line of text.

int procedure gstrdetab (line, outline, maxch, tabs)

char   line[ARB], outline[ARB]
int    maxch, tabs[ARB]

int    ip, op

begin
	ip = 1
	op = 1

	while (line[ip] != EOS && op <= maxch) {
	    if (line[ip] == '\t') {
		repeat {
		    outline[op] = ' '
		    op = op + 1
		} until (tabs[op] == YES || op > maxch)
		ip = ip + 1
	    } else {
		outline[op] = line [ip]
		ip = ip + 1
		op = op + 1
	    }
	}

	outline[op] = EOS
	return (op-1)
end