   (up-list arg))
 
 (defun select-by-step (arg &optional incremental)
-  "Select the current word.
-Subsequent calls expands the selection to larger semantic unit."
+  "Select the current word. Subsequent calls expands the selection to larger semantic unit."
   (interactive (list (prefix-numeric-value current-prefix-arg)
                      (or (and transient-mark-mode mark-active)
                          (eq last-command this-command))))
   (if incremental
       (progn
-        (semnav-up (- arg))
+        (semantic-unit (- arg))
         (forward-sexp)
         (mark-sexp -1))
     (if (> arg 1)

        (forward-line -1))
      (move-to-column column t)))))

(defun move-text-up (arg)
  "Move region (transient-mark-mode active) or current line arg lines up."
  (interactive "*p")
  (move-text-internal (- arg)))

(defun move-text-down (arg)
  "Move region (transient-mark-mode active) or current line arg lines down."
  (interactive "*p")
  (move-text-internal arg))

(defun comment-or-uncomment-line-or-region ()
  (interactive)
  (if (region-active-p)
      (comment-or-uncomment-region (region-beginning) (region-end))


;;;; Functions

(defun move-line-or-region (arg)
  "Move region (transient-mark-mode active) or current line arg lines up if positive, down if negative."
  (cond
   ((and mark-active transient-mark-mode)
    (if (> (point) (mark))
