mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-31 06:05:44 +00:00
97 lines
2.9 KiB
EmacsLisp
97 lines
2.9 KiB
EmacsLisp
;;; -*- Mode: Emacs-Lisp -*-
|
|
;;;
|
|
;;; The contents of this file are subject to the Netscape Public License
|
|
;;; Version 1.0 (the "NPL"); you may not use this file except in
|
|
;;; compliance with the NPL. You may obtain a copy of the NPL at
|
|
;;; http://www.mozilla.org/NPL/
|
|
;;;
|
|
;;; Software distributed under the NPL is distributed on an "AS IS" basis,
|
|
;;; WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
|
;;; for the specific language governing rights and limitations under the
|
|
;;; NPL.
|
|
;;;
|
|
;;; The Initial Developer of this code under the NPL is Netscape
|
|
;;; Communications Corporation. Portions created by Netscape are
|
|
;;; Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
|
;;; Reserved.
|
|
;;;
|
|
|
|
(defun html-to-pc (name input output)
|
|
(save-excursion
|
|
(set-buffer (let ((font-lock-mode nil))
|
|
(find-file-noselect output)))
|
|
(fundamental-mode)
|
|
(erase-buffer)
|
|
(insert-file-contents input)
|
|
(goto-char (point-min))
|
|
(while (search-forward "x_cbug" nil t)
|
|
(goto-char (match-beginning 0))
|
|
(delete-char 1)
|
|
(insert "win"))
|
|
(goto-char (point-min))
|
|
|
|
;; refill the paragraphs for small PC screens...
|
|
(if (equal name "LICENSE")
|
|
(let ((fill-column 67))
|
|
(save-restriction
|
|
(goto-char (point-max))
|
|
(forward-paragraph -1) ; skip last one
|
|
(narrow-to-region (point-min) (point))
|
|
(goto-char (point-min))
|
|
(while (not (eobp))
|
|
(fill-paragraph nil)
|
|
(forward-paragraph 1)))))
|
|
|
|
(goto-char (point-min))
|
|
(let ((line 0)
|
|
(char 0))
|
|
(while (not (eobp))
|
|
(cond ((= char 0)
|
|
(if (= line 0)
|
|
(insert "STRINGTABLE DISCARDABLE\nBEGIN\n")
|
|
;else
|
|
(insert "\"\n"))
|
|
(insert (upcase (format "IDS_%s_%x\t\"!" name line)))
|
|
(setq line (1+ line))))
|
|
(cond ((= (following-char) ?\")
|
|
(setq char (1+ char))
|
|
(insert "\"")
|
|
(forward-char 1))
|
|
((= (following-char) ?\n)
|
|
(delete-char 1)
|
|
|
|
(insert "\\r\\n")
|
|
|
|
; (cond ((= (following-char) ?\n)
|
|
; (delete-char 1)
|
|
; (insert "\\r\\n\\r\\n"))
|
|
; (t
|
|
; (insert " ")))
|
|
)
|
|
(t
|
|
(forward-char 1)))
|
|
(setq char (1+ char))
|
|
(if (> char 190)
|
|
(setq char 0))))
|
|
(insert "\"\nEND\n")
|
|
(forward-line -2)
|
|
(search-forward "\"" nil t)
|
|
(delete-char 1)
|
|
(save-buffer)
|
|
))
|
|
|
|
(defun batch-html-to-pc ()
|
|
(defvar command-line-args-left) ;Avoid 'free variable' warning
|
|
(if (not noninteractive)
|
|
(error "batch-html-to-pc is to be used only with -batch"))
|
|
(let ((name (nth 0 command-line-args-left))
|
|
(in (expand-file-name (nth 1 command-line-args-left)))
|
|
(out (expand-file-name (nth 2 command-line-args-left)))
|
|
(version-control 'never))
|
|
(or (and in out)
|
|
(error
|
|
"usage: emacs -batch -f batch-html-to-pc input-file output-file"))
|
|
(setq command-line-args-left (cdr (cdr command-line-args-left)))
|
|
(let ((auto-mode-alist nil))
|
|
(html-to-pc name in out))))
|