ﷲ
# AR-RAHMAN: , AR-RAHEEM #
(defun xah-make-backup ()
"Make a backup copy of current file or dired marked files.
If in dired, backup current file or marked files.
The backup file name is in this format
x.html~2018-05-15_133429~
The last part is hour, minutes, seconds.
Overwrite existing file.
If the current buffer is not associated with a file, nothing's done.
URL `http://xahlee.info/emacs/emacs/elisp_make-backup.html'
Created: 2018-07-07
Version: 2024-04-21"
(interactive)
(let ((xfname buffer-file-name)
(xdateTimeFormat "%Y-%m-%d_%H%M%S"))
(if xfname
(let ((xbackupName
(concat xfname "~" (format-time-string xdateTimeFormat) "~")))
(copy-file xfname xbackupName t)
(message (concat "\nBackup saved at: " xbackupName)))
(if (eq major-mode 'dired-mode)
(progn
(mapc (lambda (xx)
(let ((xbackupName
(concat xx "~" (format-time-string xdateTimeFormat) "~")))
(copy-file xx xbackupName t)))
(dired-get-marked-files))
(revert-buffer))
(user-error "%s: buffer not file nor dired" real-this-command)))))
(defun xah-toggle-letter-case ()
"Toggle the letter case of current word or selection.
Always cycle in this order: Init Caps, ALL CAPS, all lower.
URL `http://xahlee.info/emacs/emacs/emacs_toggle_letter_case.html'
Version: 2020-06-26 2023-11-14"
(interactive)
(let ( (deactivate-mark nil) xp1 xp2)
(if (region-active-p)
(setq xp1 (region-beginning) xp2 (region-end))
(save-excursion
(skip-chars-backward "[:alpha:]")
(setq xp1 (point))
(skip-chars-forward "[:alpha:]")
(setq xp2 (point))))
(when (not (eq last-command this-command))
(put this-command 'state 0))
(cond
((equal 0 (get this-command 'state))
(upcase-initials-region xp1 xp2)
(put this-command 'state 1))
((equal 1 (get this-command 'state))
(upcase-region xp1 xp2)
(put this-command 'state 2))
((equal 2 (get this-command 'state))
(downcase-region xp1 xp2)
(put this-command 'state 0)))))
Language:Clojure