1:- module(st_escape, [
2 st_write_escape/2 3]).
15st_write_escape(Stream, Text):-
16 string(Text), !,
17 string_codes(Text, Codes),
18 st_write_codes(Codes, Stream).
19
20st_write_escape(Stream, Text):-
21 atom(Text), !,
22 atom_codes(Text, Codes),
23 st_write_codes(Codes, Stream).
24
25st_write_escape(Stream, Text):-
26 number(Text), !,
27 write(Stream, Text).
28
31
32st_write_escape(Stream, Text):-
33 term_string(Text, String),
34 string_codes(String, Codes),
35 st_write_codes(Stream, Codes).
36
37st_write_codes([0'<|Codes], Stream):- !,
38 write(Stream, '<'),
39 st_write_codes(Codes, Stream).
40
41st_write_codes([0'>|Codes], Stream):- !,
42 write(Stream, '>'),
43 st_write_codes(Codes, Stream).
44
45st_write_codes([0'&|Codes], Stream):- !,
46 write(Stream, '&'),
47 st_write_codes(Codes, Stream).
48
49st_write_codes([0'\'|Codes], Stream):- !,
50 write(Stream, '''),
51 st_write_codes(Codes, Stream).
52
53st_write_codes([0'"|Codes], Stream):- !,
54 write(Stream, '"'),
55 st_write_codes(Codes, Stream).
56
57st_write_codes([Code|Codes], Stream):- !,
58 put_code(Stream, Code),
59 st_write_codes(Codes, Stream).
60
61st_write_codes([], _)
HTML escaping
Escapes symbols that have special meaning in HTML. */