 (defn execute-ctc [{{:keys [x]} :cursor :keys [width] :as vt}]
   (let [n (get-param vt 0 0)]
     (condp = n
-      0 (if (< 0 x width) (update-in vt [:tabs] conj x) vt)
-      2 (update-in vt [:tabs] disj x)
-      5 (update-in vt [:tabs] empty)
+      0 (if (< 0 x width) (update vt :tabs conj x) vt)
+      2 (update vt :tabs disj x)
+      5 (update vt :tabs empty)
       vt)))
 
 (defn execute-ech [{{:keys [x y]} :cursor :keys [width char-attrs] :as vt}]

    (reduce #(reset-mode %1 intermediate %2) vt (get-params vt))))

(defn reset-attrs [vt]
  (update-in vt [:char-attrs] empty))

(defn set-attr [vt attr-name value]
  (assoc-in vt [:char-attrs attr-name] value))

(defn unset-attr [vt attr-name]
  (update-in vt [:char-attrs] dissoc attr-name))

(defn execute-sgr [vt]
  (let [params (or (seq (get-params vt)) [0])]

(defn execute-tbc [{{:keys [x]} :cursor :as vt}]
  (let [n (get-param vt 0 0)]
    (condp = n
      0 (update vt :tabs disj x)
      3 (update vt :tabs empty)
      vt)))

(defn execute-sm [vt]
