Hi all, I should add a little bit of context and explain why I am trying to get rid of `term-suppress-hard-newline'. I use ansi-term on a daily basis and I stay in "char mode" all the time unless I'm copying something from the terminal output. ansi-term adds extra newlines at the to break long lines into multiple lines of text that fit the terminal width. There is an option to disable this behavior called `term-suppress-hard-newline'. This option is useful when: 1. The window dimensions changes to accommodate the long line(s). It is nice to see the line unwrap and adjust to the larger window width. 2. The text is copied from the terminal buffer to another buffer. It is nice not to have extra newlines that weren't part of the original output, specially when copying large amounts of text from the terminal output. But, `term-suppress-hard-newline' feels like a hack. It has few edge cases that I have been running into. For example, `term-unwrap-line' can break long lines unexpectedly. This causes edits to the beginning of the command line (e.g. inserting or removing a character) to mess up the terminal screen. Furthermore `term-down' doesn't adjust the `term-current-column' and `term-start-line-column' properly. It just assumes that the line starts at column 0, which isn't the case when a long line is wrapped around. I think those issues I mentioned above are fix-able. But, I think that `term-suppress-hard-newline' breaks an assumption that is made in the rest of the code. Instead, I experimented with a different approach that i would like to get some feedback on. 1. Add a text property to mark extra newlines when they are inserted (e.g. `term-newline' is set to `t') 2. On resize reflow the text. That is, remove the extra newlines and add new ones to make sure that lines fit in the terminal width. 3. Set a `filter-buffer-substring-function' to remove those extra newlines. I attached a patch that I have been using locally. Let me know what you think.