This is a clumsy way of saying you don't like the '©' character in strings. I truly do dislike the fact that that you changed the behavior of strings. Yes, I know I can figure out how to change my code to use byte arrays somehow or another, but it is a lot of work. More than just "sed 's/string/bytes/'"
Anyway, seg faulting is not a good response. (gdb) printf "%s\n", pDE->de_val.dvu_text This program reads or accepts a list of files and prints the names of the files that are not plain text. @i{plain text} characters are characters in the range of 0x20 thru 0x7E (' ' thru '~'), plus backspace, whitespace characters and the character 0xA9 (© - the circled-C copyright character). (gdb) s Backtrace: In ice-9/boot-9.scm: 149: 5 [catch #t #<catch-closure 9b5860> ...] 157: 4 [#<procedure 9510f0 ()>] In unknown file: ?: 3 [catch-closure] In ice-9/eval.scm: 368: 2 [eval # ()] 368: 1 [eval # ()] In unknown file: ?: 0 [stack "explain"] ERROR: In procedure stack: ERROR: Throw to key `decoding-error' with args `("scm_from_stringn" "input locale conversion error" 84 \ #vu8(84 104 105 115 32 112 114 111 103 114 97 109 32 114 101 97 100 115 32 111 114 32 97 99 99 101 112 \ 116 115 32 97 32 108 105 115 116 32 111 102 32 102 105 108 101 115 32 97 110 100 32 112 114 105 110 \ 116 115 32 116 104 101 32 110 97 109 101 115 32 111 102 32 116 104 101 10 102 105 108 101 115 32 116 \ 104 97 116 32 97 114 101 32 110 111 116 32 112 108 97 105 110 32 116 101 120 116 46 32 32 64 105 123 \ 112 108 97 105 110 32 116 101 120 116 125 32 99 104 97 114 97 99 116 101 114 115 32 97 114 101 32 99 \ 104 97 114 97 99 116 101 114 115 10 105 110 32 116 104 101 32 114 97 110 103 101 32 111 102 32 48 \ 120 50 48 32 116 104 114 117 32 48 120 55 69 32 40 39 32 39 32 116 104 114 117 32 39 126 39 41 44 \ 32 112 108 117 115 32 98 97 99 107 115 112 97 99 101 44 10 119 104 105 116 101 115 112 97 99 101 32 \ 99 104 97 114 97 99 116 101 114 115 32 97 110 100 32 116 104 101 32 99 104 97 114 97 99 116 101 114 \ 32 48 120 65 57 32 40 169 32 45 32 116 104 101 32 99 105 114 99 108 101 100 45 67 32 99 111 112 121 \ 114 105 103 104 116 10 99 104 97 114 97 99 116 101 114 41 46))'. Program received signal SIGSEGV, Segmentation fault.