Spec-Zone.ru › Elisp

Системы кодирования, выбранные пользователем

Функция: select-safe-coding-system from to &optional default-coding-system accept-default-p file

Эта функция выбирает систему кодирования для кодирования указанного текста, спрашивая пользователя о выборе, если это необходимо. Обычно указанный текст — это текст в текущем буфере между from и to. Если from — это строка, строка определяет текст для кодирования, а to игнорируется.

Если указанный текст содержит сырые байты (см. Представления текста), select-safe-coding-system предполагает raw-text для его кодирования.

Если default-coding-system не nil, это первая система кодирования, которая будет использована; если она может обработать текст, select-safe-coding-system возвращает эту систему кодирования. Она также может быть списком систем кодирования; тогда функция пробует каждую из них по очереди. После попыток всех из них, она затем пробует текущее значение буфера buffer-file-coding-system (если оно не undecided), затем значение по умолчанию buffer-file-coding-system и, наконец, предпочтительную систему кодирования пользователя, которую пользователь может установить с помощью команды prefer-coding-system (см. Распознавание систем кодирования в Руководстве GNU Emacs).

Если одна из этих систем кодирования может безопасно закодировать весь указанный текст, select-safe-coding-system выбирает её и возвращает. В противном случае она просит пользователя выбрать из списка систем кодирования, которые могут закодировать весь текст, и возвращает выбор пользователя.

default-coding-system также может быть списком, первым элементом которого является t, а другими элементами — системами кодирования. Затем, если ни одна система кодирования в списке не может обработать текст, select-safe-coding-system немедленно запросит пользователя, не пробуя ни одну из трёх альтернатив, описанных выше. Это удобно для проверки только систем кодирования в списке.

Необязательный аргумент accept-default-p определяет, является ли система кодирования, выбранная без взаимодействия с пользователем, приемлемой. Если он опущен или nil, такой тихий выбор всегда приемлем. Если он не nil, он должен быть функцией; select-safe-coding-system вызывает эту функцию с одним аргументом, базовой системой кодирования выбранной системы кодирования. Если функция возвращает nil, select-safe-coding-system отклоняет выбранную без участия пользователя систему кодирования и просит пользователя выбрать систему кодирования из списка возможных кандидатов.

Если переменная select-safe-coding-system-accept-default-p не nil, она должна быть функцией, принимающей один аргумент. Она используется вместо accept-default-p, переопределяя любое значение, предоставленное для этого аргумента.

В качестве последнего шага, перед возвратом выбранной системы кодирования, select-safe-coding-system проверяет, согласуется ли эта система кодирования с тем, что было бы выбрано, если содержимое области было прочитано из файла. (Если нет, это может привести к повреждению данных в файле, который был посещён и отредактирован позже.) Обычно select-safe-coding-system использует buffer-file-name в качестве файла для этой цели, но если file не nil, она использует этот файл вместо него (это может быть актуально для write-region и аналогичных функций). Если она обнаруживает явное несоответствие, select-safe-coding-system запросит пользователя перед выбором системы кодирования.

Переменная: select-safe-coding-system-function

Эта переменная задаёт функцию, которая будет вызываться для запроса у пользователя выбора правильной системы кодирования для кодирования текста, когда система кодирования по умолчанию для операции вывода не может безопасно закодировать этот текст. Значение по умолчанию этой переменной — select-safe-coding-system. Примитивы Emacs, которые записывают текст в файлы, такие как write-region, или отправляют текст другим процессам, такие как process-send-region, обычно вызывают значение этой переменной, если coding-system-for-write не привязано к значению, не являющемуся nil (см. Указание систем кодирования).

Вот две функции, которые вы можете использовать, чтобы позволить пользователю указать систему кодирования с завершением. См. Завершение.

Функция: read-coding-system prompt &optional default

Эта функция считывает систему кодирования с помощью минибуфера, запрашивая ввод со строкой prompt, и возвращает имя системы кодирования как символ. Если пользователь вводит пустой ввод, default указывает, какую систему кодирования вернуть. Это должен быть символ или строка.

Функция: read-non-nil-coding-system prompt

Эта функция считывает систему кодирования с помощью минибуфера, запрашивая ввод со строкой prompt, и возвращает имя системы кодирования как символ. Если пользователь пытается ввести пустой ввод, он запросит у пользователя повторный ввод. См. Системы кодирования.

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/User_002dChosen-Coding-Systems.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API