(require 'ring)
(require 'ehelp)
+(declare-function ring-empty-p "ring" (ring))
+(declare-function ring-ref "ring" (ring index))
+(declare-function ring-insert-at-beginning "ring" (ring item))
+(declare-function ring-length "ring" (ring))
+(declare-function ring-insert "ring" (ring item))
+
(defgroup term nil
"General command interpreter in a window."
:group 'processes)
:type 'boolean
:group 'term)
+(defcustom term-suppress-hard-newline nil
+ "Non-nil means interpreter should not break long lines with newlines.
+This means text can automatically reflow if the window is resized."
+ :version "24.4"
+ :type 'boolean
+ :group 'term)
+
;; Where gud-display-frame should put the debugging arrow. This is
;; set by the marker-filter, which scans the debugger's output for
;; indications of the current pc.
(when term-escape-char
;; Undo previous term-set-escape-char.
(define-key term-raw-map term-escape-char 'term-send-raw))
- (setq term-escape-char (vector key))
+ (setq term-escape-char (if (vectorp key) key (vector key)))
(define-key term-raw-map term-escape-char term-raw-escape-map)
;; FIXME: If we later call term-set-escape-char again with another key,
;; we should undo this binding.
(setq count (length decoded-substring))
(setq temp (- (+ (term-horizontal-column) count)
term-width))
- (cond ((<= temp 0)) ;; All count chars fit in line.
- ((> count temp) ;; Some chars fit.
+ (cond ((or term-suppress-hard-newline (<= temp 0)))
+ ;; All count chars fit in line.
+ ((> count temp) ;; Some chars fit.
;; This iteration, handle only what fits.
(setq count (- count temp))
(setq count-bytes
(let ((color
(if term-ansi-current-reverse
(face-foreground
- (elt ansi-term-color-vector term-ansi-current-color))
+ (elt ansi-term-color-vector term-ansi-current-color)
+ nil 'default)
(face-background
- (elt ansi-term-color-vector term-ansi-current-bg-color)))))
+ (elt ansi-term-color-vector term-ansi-current-bg-color)
+ nil 'default))))
(setq term-current-face
(list :background color
:foreground color))
) ;; No need to bother with anything else if it's invisible.
(setq term-current-face
(list :foreground
- (face-foreground (elt ansi-term-color-vector term-ansi-current-color))
+ (face-foreground
+ (elt ansi-term-color-vector term-ansi-current-color)
+ nil 'default)
:background
- (face-background (elt ansi-term-color-vector term-ansi-current-bg-color))
+ (face-background
+ (elt ansi-term-color-vector term-ansi-current-bg-color)
+ nil 'default)
:inverse-video term-ansi-current-reverse))
(when term-ansi-current-bold