 If ARG is not nil or 1, move forward ARG - 1 lines first.
 If point reaches the beginning or end of the buffer, stop there."
   (interactive "^p")
-  (setq arg (or arg 1))
 
   ;; Move lines first
   (when (/= arg 1)

  "Faster `M-b'"
  (interactive)
  (ignore-errors (backward-word 5)))

(require 'ffap)

;; Patch `ffap-string-at-point-mode-alist' to support file paths with curly braces:
;; ${HOME}/.emacs.d/init.el
;; Delete from `ffap-string-at-point-mode-alist' all elements whose `car' is `file'
(setq ffap-string-at-point-mode-alist
      (assq-delete-all 'file ffap-string-at-point-mode-alist))
;; and then add a new list `(file ..)' that supports the curly braces.
(add-to-list 'ffap-string-at-point-mode-alist
             '(file "--:\\\\$\\{\\}+<>@-Z_[:alpha:]~*?" "<@" "@>;.,!:"))

;; Patched version to fix this issue:
;; In Verilog/C/C++, comments can begin with //.

;; Time-stamp: <2015-10-12 10:42:56 kmodi>

;; iy-go-to-char
;; https://github.com/doitian/iy-go-to-char
(use-package iy-go-to-char
  ;; Note that repeatedly calling the `iy-go-to-char' key-chords without first
  ;; quitting the previous `iy-go-to-char' call will cause emacs to crash.
  :chords (("]'"  . iy-go-to-char)
           ("}\"" . iy-go-to-or-up-to-continue)
           ("[;"  . iy-go-to-char-backward)
           ("{:"  . iy-go-to-or-up-to-continue-backward))
  :config
  (progn
    (setq iy-go-to-char-continue-when-repeating t)
