Commit e033875
committed
core: Preserve true line endings in @go.printf
Closes #146. Works by adding the ASCII Unit Separator character after
every newline character and using it as the delimiter for `read`. This
way output that shouldn't end with a newline won't.
Seems to add about 0.003-0.005s to the time on average as measured by:
time COLUMNS=<N> ./go help builtins
regardless of the value of `<N>` used to set `COLUMNS`. Also measurably
faster than the alternate methods of:
- counting the total number of characters printed and only emitting a
newline if the number of `result` characters hasn't been reached
- counting the number of lines and only emitting a newline if the
current line number is less than or equal to the length of
`${result//[^$'\n']}`
Also includes an update to `libexec/get.d/file` to fix a test broken by
this new behavior, as it previously depended upon the old behavior to
add a newline by default.1 parent 5ff82ac commit e033875
3 files changed
+15
-8
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
154 | 154 | | |
155 | 155 | | |
156 | 156 | | |
157 | | - | |
158 | 157 | | |
159 | 158 | | |
160 | 159 | | |
161 | 160 | | |
162 | 161 | | |
163 | 162 | | |
164 | 163 | | |
165 | | - | |
166 | | - | |
| 164 | + | |
| 165 | + | |
167 | 166 | | |
168 | 167 | | |
169 | | - | |
| 168 | + | |
170 | 169 | | |
171 | 170 | | |
172 | 171 | | |
| |||
177 | 176 | | |
178 | 177 | | |
179 | 178 | | |
180 | | - | |
181 | | - | |
| 179 | + | |
| 180 | + | |
182 | 181 | | |
183 | 182 | | |
184 | 183 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
99 | | - | |
| 99 | + | |
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
147 | | - | |
| 147 | + | |
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
0 commit comments