LINUX.ORG.RU

Стандартный язык шаблонов


0

0

Пишу расширение для ффокса. Проблема в том, что при выходе следующей версии приходится исправлять номера версии в нескольких файлах.

Есть какой-нибудь простой язык шаблонов, чтобы можно было вставить в нужных местах какой-нибудь макрос, а версия подставилась автоматически при "компиляции"? Или лучше просто написать Makefile с чем-нибудь вроде sed s/#version#/`cat version`/

★★★★

Если это - всё, что надо - cpp если надо большего - m4

anonymous
()

такоe не подойдет?:

cc -DVERS="0.99"

dilmah ★★★★★
()

2dilmah: под cc подразумевалось cpp, да?

davidov@music:~/tmp/tmp$ cat 1
VERS
davidov@music:~/tmp/tmp$ cpp -DVERS="0.99" 1 2
davidov@music:~/tmp/tmp$ cat 2
# 1 "1"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "1"
0.99

То что нужно, спасибо. С ходу не понял, как убрать #, но посмотрю, спасибо.

Davidov ★★★★
() автор топика
Ответ на: комментарий от Davidov

Единственное, я боюсь, что cpp не сможет заменять номер версии, если строка в кавычках. Или это можно как-нибудь обойти?

Davidov ★★★★
() автор топика
Ответ на: комментарий от Davidov

$ cat test.c
#include <stdio.h>

char my_version[] = VERS;

int main()
{
    printf("hi guys!\nMy version is %s\n", VERS);
    printf("yes, I do not lie, my version is %s\n", my_version);
    return 0;
}

$ gcc -DVERS=\"0,99\" test.c
$ ./a.out
hi guys!
My version is 0,99
yes, I do not lie, my version is 0,99

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

Ну да, только язык, к сожалению, js+xml.

У cpp мне не нравится неадекватная работа с переносами строк: даже с параметром -P он зачем-то вставляет две пустые строки наверху, и убирает пустые строки после #include. Помимо этого он пытается убрать экранированные переносы строк и, по-моему, это не отключается.

С m4 я боюсь нарваться на коллизию имён.

Собственно, на данный момент мне нужно только уметь делать подмену и (желательно) вставку другого файла (без внесения каких-либо других изменений в исходник).

Davidov ★★★★
() автор топика
Ответ на: комментарий от Davidov

Слушай, может тебе будет проще, в самом начале работы плагина, спросить версию прям у броузера, или у лисы нет соответствующего API?

aton
()
Ответ на: комментарий от aton

Увы, нет.

Номер версии должен присутствовать в комментариях, скриптах инсталяции, файлах локали, rdf файле и т.п.

Но я нашёл отличное решенее: http://www.nothingisreal.com/gpp/gpp.html

Кстати, если кому-нибудь интересно/есть критика, буду признателен. Javascript я, практически, не знаю. Пользуюсь тем, что он похож на C, документацией по DOM, примерами, гуглом :)

http://www.myths.ru/grtoolkit

Писал для себя :)

Davidov ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.