+ line_len = strlen(line);
+
+ // cut trailing line break (this can be newline and/or carriage return)
+ for (line_ptr = &line[line_len]; line_ptr >= line; line_ptr--)
+ if ((*line_ptr == '\n' || *line_ptr == '\r') && *(line_ptr + 1) == '\0')
+ *line_ptr = '\0';
+
+ // re-add newline (so the result is terminated by newline, but not CR/LF)
+ if (strlen(line) != line_len)
+ strcat(line, "\n");
+