int rc = 1;
/* Now we try to optimise in the simple but very common case that:
- * - we are remove the char at EOL
+ * - outputChars() can be used directly (not win32)
+ * - we are removing the char at EOL
* - the buffer is not empty
* - there are columns available to the left
* - the char being deleted is not a wide or utf-8 character
* - no hints are being shown
*/
- if (current->pos == pos + 1 && current->pos == sb_chars(current->buf) && pos > 0) {
+ if (current->output && current->pos == pos + 1 && current->pos == sb_chars(current->buf) && pos > 0) {
#ifdef USE_UTF8
/* Could implement utf8_prev_len() but simplest just to not optimise this case */
char last = sb_str(current->buf)[offset];
buf[n] = 0;
/* Now we try to optimise in the simple but very common case that:
+ * - outputChars() can be used directly (not win32)
* - we are inserting at EOL
* - there are enough columns available
* - no hints are being shown
*/
- if (pos == current->pos && pos == sb_chars(current->buf)) {
+ if (current->output && pos == current->pos && pos == sb_chars(current->buf)) {
int width = char_display_width(ch);
if (current->colsright > width) {
/* Yes, can optimise */