Цитата: 1,2,3,4 - это все понятно..
Непонятен именно
Цитата:Если команда дописана мной, то скорей всего это ссылка на модуль
Цитата: 1,2,3,4 - это все понятно..
Непонятен именно
Цитата:Если команда дописана мной, то скорей всего это ссылка на модуль
0. ded.inc подключили в boot.config?
1. Если создан тот или иной модуль, то обращение к нему идет просто по имени. При этом, естественно предполагается, что все необходимые переменные были предварительно проинициализированы, т.е. им выделено адресное пространство и придано какое-либо значение. Вызов делается в одном из .inc основного проекта (system.inc, main.inc, timeout.inc, common.inc). Я думал понятно, что нужно не только закинуть ded.inc в свою папку, но и сделать вызовы модулей в нужных точках.
Пример вызова модуля из timeout.inc : s.do.clock_mod %=========> ded.inc
2. Чтобы не загромождать чужие *.inc своим кодом я просто выношу модули в отдельный ded.inc. Идем туда и ищем строку
/s.do.clock_mod {
Это и есть собственно заголовок модуля (или подпрограммы, если угодно). Слэш, для себя интерпретирую как команду инициализации, открывающаяся фигурная скобка показывает начало группы команд, которые входят в модуль. Фигурные скобки по синтаксису языка обязательно парные. Конец модуля помечается так.
} def
У AlkedPad-a есть плагин подсвечивающий элементарный синтаксис ( в нашем случае скобки), что позволяет поставив курсор на одну скобку увидеть ей парную. Это значительно облегчает читабельность. Кроме того, модули отделены друг от друга визуально и имеют краткое описание на русском.
3. С точки зрения языка, инициализация переменной или модуля это одно и то же. Переменную, вообще говоря, можно инициализировать в любой момент.
Пример: /s.proba 2007 def % присваиваем переменной s.proba значение 2007
Пример: /s.ded s.proba 1 add def % присваиваем переменной s.ded значение на 1 большее, чем s.proba
Но это не есть удобно, т.к. при входе в модуль мы все время будем получать стартовые значения, либо нужно мутить проверку, типа "это первичный вход или нет". Внутри модуля лучше инициализировать только всякие временные переменные, индексы циклов и т.п. Остальные рассматривать как глобальные и инициализировать их пораньше. Для этого сделаны три модуля ded.init, s.LOGO.init, s.do.after_menu. Первый вызывается из common.inc после прорисовки фона, еще до загрузки шрифтов и меню, s.LOGO.init вызывается после шрифтов но еще до меню, s.do.after_menu уже после чтения grub-овского menu.lst
Основная масса переменных инициализируется в ded.init, они собраны по группам и снабжены комментариями.
Переменные выкидывать и сокращать скрипты особого смысла нет. Посмотри внимательно собраную тему. Из 250 кбайт модуль init занимает всего 71 кб. Ну и сколько можно будет выгадать на сокращении?