summaryrefslogtreecommitdiffstats
path: root/emacs.d/nxhtml/util/ocr-user.el
blob: 0bcd1d90c9f8c0168a8469a5cf0fa759cd04672a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
;;; ocr-user.el --- Input looong OCR number more safely
;;
;; Author: Lennart Borgman (lennart O borgman A gmail O com)
;; Created: 2008-06-18T23:00:25+0200 Wed
;; Version:
;; Last-Updated:
;; URL:
;; Keywords:
;; Compatibility:
;;
;; Features that might be required by this library:
;;
;;   None
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; Commentary:
;;
;; I just get mad at entering OCR numbers more than twenty digits long
;; so I wrote this litte minor mode that colors up the digits three by
;; tree.
;;
;; To use it do
;;
;;   M-x ocr-user-mode
;;
;; Crazy? Yeah, I get crazy by entering these digits. You would not
;; like to meet me when I have done that!
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; Change log:
;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation; either version 2, or
;; (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
;; General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program; see the file COPYING.  If not, write to
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth
;; Floor, Boston, MA 02110-1301, USA.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; Code:

(defconst ocr-keywords
  `((
     ,(concat
      ;;"\\<\\(?:"
      "\\(?1:[0-9]\\{3\\}\\)"
      "\\(?2:[0-9]\\{3\\}\\)?"
      ;;"\\)+"
      )
     (0 (progn
          (put-text-property (match-beginning 1) (match-end 1)
                             'face '(:background "LightBlue1"))
          (when (match-beginning 2)
            (put-text-property (match-beginning 2) (match-end 2)
                               'face '(:background "PaleGreen1"))))))))

;; 23456
;; 1234567890
;; 346789238
;;;###autoload
(define-minor-mode ocr-user-mode
  "Color up digits three by three."
  :group 'convenience
  (if ocr-user-mode
      (font-lock-add-keywords nil ocr-keywords)
    (font-lock-remove-keywords nil ocr-keywords))
  (font-lock-fontify-buffer))


(provide 'ocr-user)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ocr-user.el ends here