version	U12.1.00
uid	shquote.u1-1786032995-0
impl	error
global	7
	0,000005,shquote,-1
	1,000005,cshquote,-1
	2,000005,mpwquote,-1
	3,000005,shquote_words,4
	4,000005,dequote,3
	5,000005,mpwdequote,1
	6,000005,mpw_escape_proc,1

proc shquote
	local	0,001000,s
	local	1,000000,shquote_words
	declend
	filen	shquote.icn
	line	43
	colm	11
	synt	any
	mark	L1
	mark	L2
	var	1
	var	0
	line	44
	colm	24
	synt	any
	invoke	1
	line	44
	colm	4
	synt	any
	pret
lab L2
	synt	any
	pfail
	unmark
lab L1
	pnull
	line	45
	colm	1
	synt	any
	pfail
	end
proc cshquote
	local	0,001000,s
	local	1,000000,shquote_words
	local	2,000000,tab
	local	3,000000,find
	local	4,000000,move
	con	0,020000,20,011,012,040,044,042,043,046,047,050,051,052,073,074,076,077,133,134,140,174,176
	con	1,010000,0
	con	2,010000,1,041
	con	3,010000,1,134
	con	4,002000,1,1
	con	5,002000,1,0
	declend
	line	47
	colm	11
	synt	any
	mark	L1
	pnull
	var	0
	var	1
	var	0
	cset	0
	line	48
	colm	22
	synt	any
	invoke	2
	line	48
	colm	6
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	var	0
	line	52
	colm	6
	synt	any
	bscan
	mark	L3
	pnull
	var	0
	str	1
	line	53
	colm	9
	synt	any
	asgn
	unmark
lab L3
	mark	L4
lab L5
	line	54
	colm	7
	synt	while
	mark0
	pnull
	var	0
	dup
	var	2
	var	3
	str	2
	line	54
	colm	28
	synt	any
	invoke	1
	line	54
	colm	23
	synt	any
	invoke	1
	line	54
	colm	15
	synt	any
	cat
	asgn
	unmark
	mark	L5
	pnull
	var	0
	dup
	pnull
	str	3
	var	4
	int	4
	line	55
	colm	25
	synt	any
	invoke	1
	line	55
	colm	18
	synt	any
	cat
	line	55
	colm	8
	synt	any
	cat
	asgn
lab L6
	unmark
	goto	L5
lab L7
	line	54
	colm	7
	synt	endwhile
	unmark
lab L4
	pnull
	var	0
	dup
	var	2
	int	5
	line	57
	colm	17
	synt	any
	invoke	1
	line	57
	colm	9
	synt	any
	cat
	asgn
	line	52
	colm	6
	synt	any
	escan
	unmark
lab L2
	mark	L8
	mark	L9
	var	0
	line	59
	colm	4
	synt	any
	pret
lab L9
	synt	any
	pfail
	unmark
lab L8
	pnull
	line	60
	colm	1
	synt	any
	pfail
	end
proc mpwquote
	local	0,001000,s
	local	1,000020,result
	local	2,000000,shquote_words
	local	3,000000,tab
	local	4,000000,find
	local	5,000000,move
	con	0,010000,0
	con	1,020000,33,000,011,012,015,040,042,043,046,047,050,051,052,053,057,073,074,076,077,133,134,135,140,173,174,175,250,263,266,267,305,307,310,311
	con	2,010000,1,266
	con	3,010000,1,015
	con	4,010000,4,047,266,156,047
	con	5,002000,1,1
	con	6,002000,1,0
	declend
	line	62
	colm	11
	synt	any
	mark	L1
	pnull
	var	1
	str	0
	line	80
	colm	11
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	var	2
	var	0
	cset	1
	str	2
	line	85
	colm	17
	synt	any
	invoke	3
	line	87
	colm	14
	synt	any
	bscan
	mark	L3
lab L4
	line	88
	colm	7
	synt	while
	mark0
	pnull
	var	1
	dup
	var	3
	var	4
	str	3
	line	88
	colm	33
	synt	any
	invoke	1
	line	88
	colm	28
	synt	any
	invoke	1
	line	88
	colm	20
	synt	any
	cat
	asgn
	unmark
	mark	L4
	mark	L7
	pnull
	var	1
	dup
	str	4
	line	89
	colm	13
	synt	any
	cat
	asgn
	unmark
lab L7
	var	5
	int	5
	line	90
	colm	11
	synt	any
	invoke	1
lab L5
	unmark
	goto	L4
lab L6
	line	88
	colm	7
	synt	endwhile
	unmark
lab L3
	pnull
	var	1
	dup
	var	3
	int	6
	line	92
	colm	22
	synt	any
	invoke	1
	line	92
	colm	14
	synt	any
	cat
	asgn
	line	87
	colm	14
	synt	any
	escan
	unmark
lab L2
	mark	L8
	mark	L9
	var	1
	line	94
	colm	4
	synt	any
	pret
lab L9
	synt	any
	pfail
	unmark
lab L8
	pnull
	line	95
	colm	1
	synt	any
	pfail
	end
proc shquote_words
	local	0,001000,wordList
	local	1,001000,quotedChars
	local	2,001000,escapeString
	local	3,001000,sepString
	local	4,000020,s
	local	5,000020,result
	local	6,000020,sep
	local	7,000000,upto
	local	8,000000,tab
	local	9,000000,find
	local	10,000000,move
	con	0,020000,21,011,012,015,040,044,042,043,046,047,050,051,052,073,074,076,077,133,134,136,140,174
	con	1,010000,1,134
	con	2,010000,1,040
	con	3,010000,0
	con	4,010000,1,047
	con	5,010000,2,047,047
	con	6,002000,1,1
	con	7,002000,1,0
	declend
	line	97
	colm	11
	synt	any
	mark	L1
	pnull
	pnull
	var	1
	line	99
	colm	4
	synt	any
	null
	cset	0
	line	99
	colm	17
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	pnull
	pnull
	var	2
	line	100
	colm	4
	synt	any
	null
	str	1
	line	100
	colm	18
	synt	any
	asgn
	unmark
lab L2
	mark	L3
	pnull
	pnull
	var	3
	line	101
	colm	4
	synt	any
	null
	str	2
	line	101
	colm	15
	synt	any
	asgn
	unmark
lab L3
	mark	L4
	pnull
	var	5
	pnull
	var	6
	str	3
	line	102
	colm	18
	synt	any
	asgn
	line	102
	colm	11
	synt	any
	asgn
	unmark
lab L4
	mark	L5
	line	103
	colm	4
	synt	every
	mark0
	pnull
	var	4
	pnull
	var	0
	line	103
	colm	15
	synt	any
	bang
	line	103
	colm	12
	synt	any
	asgn
	pop
	mark0
	mark	L8
	line	104
	colm	7
	synt	if
	mark0
	mark	L9
	pnull
	var	4
	str	3
	line	104
	colm	12
	synt	any
	lexeq
	line	104
	colm	18
	synt	any
	esusp
	goto	L10
lab L9
	var	7
	var	1
	var	4
	line	104
	colm	24
	synt	any
	invoke	2
lab L10
	unmark
	var	4
	line	105
	colm	8
	synt	any
	bscan
	mark	L11
	pnull
	var	4
	str	4
	line	106
	colm	11
	synt	any
	asgn
	unmark
lab L11
	mark	L12
lab L13
	line	107
	colm	9
	synt	while
	mark0
	pnull
	var	4
	dup
	pnull
	pnull
	pnull
	var	8
	var	9
	str	4
	line	107
	colm	30
	synt	any
	invoke	1
	line	107
	colm	25
	synt	any
	invoke	1
	str	4
	line	107
	colm	37
	synt	any
	cat
	var	2
	line	107
	colm	44
	synt	any
	cat
	str	5
	line	107
	colm	60
	synt	any
	cat
	line	107
	colm	17
	synt	any
	cat
	asgn
	pop
	var	10
	int	6
	line	107
	colm	74
	synt	any
	invoke	1
lab L14
	unmark
	goto	L13
lab L15
	line	107
	colm	9
	synt	endwhile
	unmark
lab L12
	pnull
	var	4
	dup
	pnull
	var	8
	int	7
	line	108
	colm	19
	synt	any
	invoke	1
	str	4
	line	108
	colm	23
	synt	any
	cat
	line	108
	colm	11
	synt	any
	cat
	asgn
	line	105
	colm	8
	synt	any
	escan
	line	104
	colm	7
	synt	endif
	unmark
lab L8
	mark	L16
	pnull
	var	5
	dup
	pnull
	var	6
	var	4
	line	111
	colm	23
	synt	any
	cat
	line	111
	colm	14
	synt	any
	cat
	asgn
	unmark
lab L16
	pnull
	var	6
	var	3
	line	112
	colm	11
	synt	any
	asgn
	unmark
lab L6
	efail
lab L7
	line	103
	colm	4
	synt	endevery
	unmark
lab L5
	mark	L17
	mark	L18
	var	5
	line	114
	colm	4
	synt	any
	pret
lab L18
	synt	any
	pfail
	unmark
lab L17
	pnull
	line	115
	colm	1
	synt	any
	pfail
	end
proc dequote
	local	0,001000,s
	local	1,001000,escapeString
	local	2,001000,escapeProc
	local	3,000020,quoteChars
	local	4,000020,c
	local	5,000020,d
	local	6,000000,tab
	local	7,000000,upto
	local	8,000000,move
	con	0,010000,1,134
	con	1,002000,1,1
	con	2,020000,2,042,047
	con	3,010000,0
	con	4,010000,1,047
	con	5,002000,1,0
	declend
	line	117
	colm	11
	synt	any
	mark	L1
	pnull
	pnull
	var	1
	line	119
	colm	4
	synt	any
	null
	str	0
	line	119
	colm	18
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	pnull
	pnull
	var	2
	line	120
	colm	4
	synt	any
	null
	int	1
	line	120
	colm	16
	synt	any
	asgn
	unmark
lab L2
	mark	L3
	pnull
	var	3
	pnull
	cset	2
	pnull
	var	1
	int	1
	line	121
	colm	39
	synt	any
	subsc
	line	121
	colm	24
	synt	any
	unions
	line	121
	colm	15
	synt	any
	asgn
	unmark
lab L3
	mark	L4
	var	0
	line	122
	colm	6
	synt	any
	bscan
	mark	L5
	pnull
	var	0
	str	3
	line	123
	colm	9
	synt	any
	asgn
	unmark
lab L5
	mark	L6
lab L7
	line	124
	colm	7
	synt	while
	mark0
	pnull
	var	0
	dup
	var	6
	var	7
	var	3
	line	124
	colm	28
	synt	any
	invoke	1
	line	124
	colm	23
	synt	any
	invoke	1
	line	124
	colm	15
	synt	any
	cat
	asgn
	unmark
	mark	L7
	line	125
	colm	6
	synt	ifelse
	mark	L10
	pnull
	var	1
	line	125
	colm	9
	synt	any
	tabmat
	unmark
	pnull
	var	0
	dup
	line	125
	colm	36
	synt	ifelse
	mark	L12
	pnull
	var	5
	str	4
	line	125
	colm	41
	synt	any
	eqv
	unmark
	var	1
	goto	L13
lab L12
	var	2
	var	8
	int	1
	line	126
	colm	16
	synt	any
	invoke	1
	line	126
	colm	11
	synt	any
	invoke	1
lab L13
	line	125
	colm	36
	synt	endifelse
	line	125
	colm	30
	synt	any
	cat
	asgn
	goto	L11
lab L10
	mark	L14
	pnull
	var	4
	var	8
	int	1
	line	128
	colm	18
	synt	any
	invoke	1
	line	128
	colm	11
	synt	any
	asgn
	unmark
lab L14
	mark	L15
	pnull
	pnull
	var	5
	line	129
	colm	10
	synt	any
	null
	var	4
	line	129
	colm	13
	synt	any
	asgn
	line	129
	colm	19
	synt	any
	esusp
	goto	L16
lab L15
	mark	L17
	pnull
	var	0
	dup
	pnull
	var	5
	var	4
	line	129
	colm	31
	synt	any
	lexne
	line	129
	colm	24
	synt	any
	cat
	asgn
	line	129
	colm	38
	synt	any
	esusp
	goto	L18
lab L17
	pnull
	var	5
	line	129
	colm	46
	synt	any
	keywd	null
	line	129
	colm	43
	synt	any
	asgn
lab L18
lab L16
lab L11
	line	125
	colm	6
	synt	endifelse
lab L8
	unmark
	goto	L7
lab L9
	line	124
	colm	7
	synt	endwhile
	unmark
lab L6
	mark	L19
	pnull
	var	0
	var	6
	int	5
	line	132
	colm	22
	synt	any
	invoke	1
	line	132
	colm	16
	synt	any
	cat
	line	132
	colm	7
	synt	any
	pret
lab L19
	synt	any
	pfail
	line	122
	colm	6
	synt	any
	escan
	unmark
lab L4
	pnull
	line	134
	colm	1
	synt	any
	pfail
	end
proc mpwdequote
	local	0,001000,s
	local	1,000000,dequote
	local	2,000000,mpw_escape_proc
	con	0,010000,1,266
	declend
	line	136
	colm	11
	synt	any
	mark	L1
	mark	L2
	var	1
	var	0
	str	0
	var	2
	line	137
	colm	18
	synt	any
	invoke	3
	line	137
	colm	4
	synt	any
	pret
lab L2
	synt	any
	pfail
	unmark
lab L1
	pnull
	line	138
	colm	1
	synt	any
	pfail
	end
proc mpw_escape_proc
	local	0,001000,ch
	con	0,010000,1,156
	con	1,010000,1,012
	con	2,010000,1,164
	con	3,010000,1,011
	con	4,010000,1,146
	con	5,010000,1,014
	declend
	line	140
	colm	11
	synt	any
	mark	L1
	mark	L2
	line	141
	colm	11
	synt	case
	mark0
	var	0
	eret
	mark	L4
	ccase
	str	0
	line	142
	colm	10
	synt	any
	eqv
	unmark
	pop
	str	1
	goto	L3
lab L4
	mark	L5
	ccase
	str	2
	line	143
	colm	10
	synt	any
	eqv
	unmark
	pop
	str	3
	goto	L3
lab L5
	mark	L6
	ccase
	str	4
	line	144
	colm	10
	synt	any
	eqv
	unmark
	pop
	str	5
	goto	L3
lab L6
	pop
	var	0
lab L3
	line	141
	colm	11
	synt	endcase
	line	141
	colm	4
	synt	any
	pret
lab L2
	synt	any
	pfail
	unmark
lab L1
	pnull
	line	147
	colm	1
	synt	any
	pfail
	end
