Mercurial > emacs
changeset 65082:7f8dd08fc498
Moved from international. Old log:
;;; swedish.el --- miscellaneous functions for dealing with Swedish.
author | Jan Djärv <jan.h.d@swipnet.se> |
---|---|
date | Tue, 23 Aug 2005 20:05:32 +0000 |
parents | 42040353bc41 |
children | c84845bcb591 |
files | lisp/obsolete/swedish.el |
diffstat | 1 files changed, 157 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/obsolete/swedish.el Tue Aug 23 20:05:32 2005 +0000 @@ -0,0 +1,157 @@ +;;; swedish.el --- miscellaneous functions for dealing with Swedish + +;; Copyright (C) 1988, 2001 Free Software Foundation, Inc. + +;; Author: Howard Gayle +;; Maintainer: FSF +;; Keywords: i18n + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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. + +;; GNU Emacs 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 GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Commentary: + +;;; Code: + +;; Written by Howard Gayle. See case-table.el for details. + +;; See iso-swed.el for a description of the character set. + +(require 'latin-1) + +(defvar swedish-re + "[ \t\n]\\(och\\|att\\|en\\|{r\\|\\[R\\|p}\\|P\\]\\|som\\|det\\|av\\|den\\|f|r\\|F\\\\R\\)[ \t\n.,?!:;'\")}]" + "Regular expression for common Swedish words.") + +(defvar swascii-to-8859-trans + (let ((string (make-string 256 ? )) + (i 0)) + (while (< i 256) + (aset string i i) + (setq i (1+ i))) + (aset string ?\[ 196) + (aset string ?\] 197) + (aset string ?\\ 214) + (aset string ?^ 220) + (aset string ?\{ 228) + (aset string ?\} 229) + (aset string ?\` 233) + (aset string ?\| 246) + (aset string ?~ 252) + string) + "Trans table from SWASCII to 8859.") + +; $ is not converted because it almost always means US +; dollars, not general currency sign. @ is not converted +; because it is more likely to be an at sign in a mail address +; than an E with acute accent. + +(defun swascii-to-8859-buffer () + "Convert characters in buffer from Swedish/Finnish-ascii to ISO 8859/1. +Works even on read-only buffers. `$' and `@' are not converted." + (interactive) + (let ((buffer-read-only nil)) + (translate-region (point-min) (point-max) swascii-to-8859-trans))) + +(defun swascii-to-8859-buffer-maybe () + "Call swascii-to-8859-buffer if the buffer looks like Swedish-ascii. +Leaves point just after the word that looks Swedish." + (interactive) + (let ((case-fold-search t)) + (if (re-search-forward swedish-re nil t) + (swascii-to-8859-buffer)))) + +(setq rmail-show-message-hook 'swascii-to-8859-buffer-maybe) + +(or (boundp 'news-group-hook-alist) (setq news-group-hook-alist nil)) +(setq news-group-hook-alist + (append '(("^swnet." . swascii-to-8859-buffer-maybe)) + news-group-hook-alist)) + +(defvar 8859-to-swascii-trans + (let ((string (make-string 256 ? )) + (i 0)) + (while (< i 256) + (aset string i i) + (setq i (1+ i))) + (aset string 164 ?$) + (aset string 196 ?\[) + (aset string 197 ?\]) + (aset string 201 ?@) + (aset string 214 ?\\) + (aset string 220 ?^) + (aset string 228 ?\{) + (aset string 229 ?\}) + (aset string 233 ?\`) + (aset string 246 ?\|) + (aset string 252 ?~) + string) + "8859 to SWASCII trans table.") + +(defun 8859-to-swascii-buffer () + "Convert characters in buffer from ISO 8859/1 to Swedish/Finnish-ascii." + (interactive "*") + (translate-region (point-min) (point-max) 8859-to-swascii-trans)) + +(setq mail-send-hook '8859-to-swascii-buffer) +(setq news-inews-hook '8859-to-swascii-buffer) + +;; It's not clear what purpose is served by a separate +;; Swedish mode that differs from Text mode only in having +;; a separate abbrev table. Nothing says that the abbrevs you +;; define in Text mode have to be English! + +;(defvar swedish-mode-abbrev-table nil +; "Abbrev table used while in swedish mode.") +;(define-abbrev-table 'swedish-mode-abbrev-table ()) + +;(defun swedish-mode () +; "Major mode for editing Swedish text intended for humans to +;read. Special commands:\\{text-mode-map} +;Turning on swedish-mode calls the value of the variable +;text-mode-hook, if that value is non-nil." +; (interactive) +; (kill-all-local-variables) +; (use-local-map text-mode-map) +; (setq mode-name "Swedish") +; (setq major-mode 'swedish-mode) +; (setq local-abbrev-table swedish-mode-abbrev-table) +; (set-syntax-table text-mode-syntax-table) +; (run-mode-hooks 'text-mode-hook)) + +;(defun indented-swedish-mode () +; "Major mode for editing indented Swedish text intended for +;humans to read.\\{indented-text-mode-map} +;Turning on indented-swedish-mode calls the value of the +;variable text-mode-hook, if that value is non-nil." +; (interactive) +; (kill-all-local-variables) +; (use-local-map text-mode-map) +; (define-abbrev-table 'swedish-mode-abbrev-table ()) +; (setq local-abbrev-table swedish-mode-abbrev-table) +; (set-syntax-table text-mode-syntax-table) +; (make-local-variable 'indent-line-function) +; (setq indent-line-function 'indent-relative-maybe) +; (use-local-map indented-text-mode-map) +; (setq mode-name "Indented Swedish") +; (setq major-mode 'indented-swedish-mode) +; (run-mode-hooks 'text-mode-hook)) + +(provide 'swedish) + +;;; arch-tag: a117019d-acac-4ac4-8eac-0dbd49a41d32 +;;; swedish.el ends here