;;; po-mode.el --- major mode for GNU gettext PO files
-;; Copyright (C) 1995-2025 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2026 Free Software Foundation, Inc.
;; Authors: François Pinard <pinard@iro.umontreal.ca>
;; Greg McGary <gkm@magilla.cichlid.com>
;; Keywords: i18n gettext
;; Created: 1995
+;; Package-Requires: ((emacs "24"))
;; This file is part of GNU gettext.
:type 'string
:group 'po)
-(defvar po-subedit-mode-syntax-table
- (copy-syntax-table text-mode-syntax-table)
- "Syntax table used while in PO mode.")
\f
;;; Emacs portability matters - part II.
(if (not (fboundp 'po-find-file-coding-system))
(require 'po-compat))
-(defvar po-mode-abbrev-table nil
- "Abbrev table used while in PO mode.")
-(define-abbrev-table 'po-mode-abbrev-table ())
-
(defvar po-mode-map
;; Use (make-keymap) because (make-sparse-keymap) does not work on Demacs.
(let ((po-mode-map (make-keymap)))
(run-mode-hooks 'po-mode-hook)
(message (_"You may type 'h' or '?' for a short PO mode reminder.")))
+(define-derived-mode po-subedit-mode text-mode
+ ; The mode name is taken from the menu string in po-subedit-mode-menu-layout.
+ "PO-Edit"
+ "PO subedit mode."
+ :group 'po
+ (easy-menu-define po-subedit-mode-menu po-subedit-mode-map ""
+ po-subedit-mode-menu-layout))
+
(defvar po-subedit-mode-map
;; Use (make-keymap) because (make-sparse-keymap) does not work on Demacs.
(let ((po-subedit-mode-map (make-keymap)))
(setq slot (list marker edit-buffer overlay)
po-edited-fields (cons slot po-edited-fields))
(pop-to-buffer edit-buffer)
- (text-mode)
+ (po-subedit-mode)
(set (make-local-variable 'po-subedit-back-pointer) slot)
(set (make-local-variable 'indent-line-function)
'indent-relative)
(setq buffer-file-coding-system edit-coding)
- (setq local-abbrev-table po-mode-abbrev-table)
(erase-buffer)
(insert string "<")
(goto-char (point-min))
(and expand-tabs (setq indent-tabs-mode nil))
- (use-local-map po-subedit-mode-map)
- (easy-menu-define po-subedit-mode-menu po-subedit-mode-map ""
- po-subedit-mode-menu-layout)
- (set-syntax-table po-subedit-mode-syntax-table)
- (run-hooks 'po-subedit-mode-hook)
(message po-subedit-message)))))
(defun po-edit-comment ()