Вперед Назад Содержание

11. M4 ПРЕПРОЦЕССИНГ

При компиляции с опцией M4 fvwm использует m4(1) для преобразования своих начальных данных перед грамматическим анализом. Поэтому Вы можете пользоваться макросами m4 во время своей работы. Это весьма облегчает работу на дисплеях с различными характеристиками.

Например, Вы можете задавать цвета под стать Вашему настроению. Этого можно добиться используя -m4opt. При светлом настроении используйте -m4opt -DSunny; а при темном -m4opt -DDark. Ваш файл .fvwmrc должен для этого содержать:

ifdef(`Sunny',` StdForeColor Black StdBackColor LightSkyBlue HiForeColor yellow HiBackColor PeachPuff1 PagerBackColor BlanchedAlmond ') ifdef(`Dark',` StdForeColor Black StdBackColor #60a0c0 HiForeColor black HiBackColor #c06077 PagerBackColor #5c54c0 PagerForeColor orchid StickyForeColor Black StickyBackColor #60c0a0 ')
В fvwm предопределены следующие символы для m4:
BITS_PER_RGB

Число значащих бит в RGB цвете.(Равно двоичному логарифму от числа всех возможных цветов. Которое, вообще-то, отличется от числа цветов которые можно одновременно показать на экране.)

CLASS

Класс Вашего изображения. Может возвращать одино из значений: StaticGray, GrayScale, StaticColor, PseudoColor, TrueColor, DirectColor, или, при невозможности определить, NonStandard.

CLIENTHOST

Машина на которой выполняются клиенты.

COLOR

Это просто сокращение от определения CLASS-а. Возвращает 'Yes' для *Color и 'No' для StaticGray и GrayScale.

FVWMDIR

Устанавливает путь где хранятся конфигурации для инсталяции модулей.

FVWM_VERSION

Строка с версией fvwm.

HEIGHT

Высота Вашего дисплея в точках.

HOME

Пользовательский домашний каталог. Получается из переменной окружения.

HOSTNAME

Канонизированное имя хоста для выполнения приложений-клиентов (т.е. CLIENTHOST с полной квалификацией).

OPTIONS

Строка опций используемых при компиляции. Опции разделены пробелами.

PLANES

Число битовых плоскостей Вашего дисплея поддерживаемое стандартным главным окном.

RELEASE

Номер выпуска Вашего X-сервера. Для MIT X11R5 оно равно 5.

REVISION

Проверка X-протокола низкого уровня. См. так же ProtocolRevision(3).

SERVERHOST

Переменная с именем машины на которой работает X-сервер.

TWM_TYPE

Сообщает какой потомок twm работает. Для этой программы всегда должна быть равна строке "fvwm". Используется для защиты частей Вашего .twmrc файла которые fvwm не может правильно интерпретировать (типа WorkSpace) и которые используются другими twm программами.

USER

Имя пользователя, запустившего программу. Получается из переменной окружения.

VENDOR

Поставщик вашего X-сервера. Например: MIT X Consortium.

VERSION

Версия X-протокола высокого уровня. Смю так же ProtocolVersion(3).

WIDTH

Ширина Вашего дисплея в точках.

X_RESOLUTION

Разрешение Вашего дисплея по оси X в точках на метр.

Y_RESOLUTION

Разрешение Вашего дисплея по оси Y в точках на метр.

Хорошо изучив руководство по m4(1), Вы поймете что это весьма мощное и полезное средство. Но если Вы используете хотя бы один из предопределенных символов m4 - Вы находитесь в серьезной опасности!

Например, Sun-овский m4 предопределяет имя include, и если Вы используете это имя в Вашем .fvwmrc файле - Вам не повезло. Правильное решение этой проблемы состоит в установке кавычек вокруг слова 'include'.

Для иной интерпретации кавычек в m4 применяются опции -m4-squote и -m4-equote. Во избежание недоразумений должны быть заданы обе опции. При их задании, поправка в интерпретации макросов произойдет до обработки пользовательского .fvwmrc фаила.

ВНИМАНИЕ:

Некоторые версии m4 по разному интерпретируют кавычки при включении файлов.

В SunOS 4.1.3, например, в строке "include(<<file>>)" кавычки выглядят как "<<" и ">>" вокруг имени включаемого файла. Fvwm этого не понимает.

В GNU m4 есть дополнительные опции. При запуске fvwm со спецификацией -m4-prefix, m4 добавляет префикс m4_ ко всем встроенным макросам m4. Таким образом, например, include превращается в m4_include.

Возможности при препроцессировании m4 зависят от компиляции определений M4.


Вперед Назад Содержание