Function: eww-tag-textarea

eww-tag-textarea is a byte-compiled function defined in eww.el.gz.

Signature

(eww-tag-textarea DOM)

Source Code

;; Defined in /usr/src/emacs/lisp/net/eww.el.gz
(defun eww-tag-textarea (dom)
  (let ((value (or (dom-inner-text dom) ""))
	(lines (string-to-number (or (dom-attr dom 'rows) "10")))
	(width (string-to-number (or (dom-attr dom 'cols) "10")))
	start end form)
    (shr-ensure-newline)
    (setq start (point))
    (insert value)
    (shr-ensure-newline)
    (when (< (count-lines start (point)) lines)
      (dotimes (_ (- lines (count-lines start (point))))
	(insert "\n")))
    (setq end (point-marker))
    (goto-char start)
    (while (< (point) end)
      (end-of-line)
      (let ((pad (- width (- (point) (line-beginning-position)))))
	(when (> pad 0)
	  (insert (make-string pad ? ))))
      (add-face-text-property (line-beginning-position)
			      (point) 'eww-form-textarea)
      (put-text-property (line-beginning-position) (point) 'inhibit-read-only t)
      (put-text-property (line-beginning-position) (point)
			 'local-map eww-textarea-map)
      (forward-line 1))
    (setq form (list :eww-form eww-form
		     :value value
		     :type "textarea"
		     :name (dom-attr dom 'name)))
    (put-text-property start (point) 'eww-form form)
    (put-text-property start (point) 'front-sticky t)
    (put-text-property start (point) 'field form)
    (put-text-property start (1+ start) 'shr-tab-stop t)))