From 3b106a380356f1bb0c03d899c8a41d90d148ca9e Mon Sep 17 00:00:00 2001 From: Philip Sargent Date: Sat, 15 Oct 2022 17:25:41 +0300 Subject: [PATCH] fix PCTEXT better in dis-laying tunnel files --- core/views/drawings.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/core/views/drawings.py b/core/views/drawings.py index e922433..073f017 100644 --- a/core/views/drawings.py +++ b/core/views/drawings.py @@ -22,6 +22,22 @@ todo='''- Need to check if invalid query string is invalid, or produces multiple and render a user-friendly error page. ''' +def unescape(input): + '''These look like HTML entities, but they are not. They are tunnel-specific encodings + ''' + codes = { + "&space;" : " ", + """ : "\"", + "&tab;" : "\t", + "&backslash;" : "\\", + "&newline;" : "\n\t", + "&apostrophe": "'", + } + for c in codes: + #print(c, codes[c]) + input = input.replace(c, codes[c]) + return input + def dwgallfiles(request): '''Report on all the drawing files in the system. These were loaded by parsing the entire directory tree @@ -54,10 +70,9 @@ def dwgfilesingle(request, path): print(f'- before reading any {encoding}') lines = f.readlines() #print(f'- finished reading {encoding}') - #print(f'- {len(lines)=}') clean = [] for l in lines: - clean.append(l.replace('&','@').replace('&','&').replace('@', '&')) + clean.append(unescape(l)) # deals with strangely embedded survex file #print(f'- Cleaned and stripped.') try: return HttpResponse(content=clean, content_type="text/xml")