Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.HUSKY
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.HUSKY с датами от 16 Jul 13 10:00:06 до 09 Aug 24 22:04:26, всего сообщений: 5336
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 1841 из 5336 ========================================= RU.HUSKY =
От   : Evgeny Vetrov                    2:5037/7           09 Jun 16 20:01:52
Кому : Michael Dukelsky                                    09 Jun 16 20:01:52
Тема : hpt post
FGHI : area://RU.HUSKY?msgid=2:5037/7+5759a400
На   : area://RU.HUSKY?msgid=2:5020/1042+57554c02
= Кодировка сообщения определена как: CP866 ==================================
==============================================================================
Hello Michael.

Возвращаясь к изначальному вопросу
VF>> При постинге текстового файла в эху с помощью команды "hpt post"
VF>> в заголовок письма почему-то добавляется пустой кладж @FLAGS.

MD> "IMM", "CFM", "NPD" помещаются в кладж FLAGS. Ты такие флаги не
MD> задавал, поэтому этот кладж должен отсутствовать. То, что он
MD> присутствует, похоже на ошибку в программе. Но, поскольку он пустой,
MD> его присутствие ни на что не влияет. Так что не обращай внимания.

-= Начало цитаты post.c =-
            case 'f':   /*  flags */
                if(cur_arg[2] != 0)
                    goto unknown_switch;
                for (++*n; *n < argc; ++*n) {
                    long attr = 0;
                    char *flags = NULL, *end;
                    int parsed;

                    parsed = parseAttrString(argv[*n], &flags, &attr, &end);
                    if(parsed <= 0 || *end != '\0')
                    {
                        nfree(flags);
                        break;
                    }
                    p->attr |= attr;
                    xstrscat(&p->flags, " ", flags, NULLP);
                    nfree(flags);
                }
                --*n;
-= Конец цитаты post.c =-
Тут сразу видно следующие проблемы
1) активное использование указателей на указатели. ( Это я так брюзжу :) )
2) *end не инициализирована. Это не может быть причиной описанной проблемы, но лучше инициализировать т.к. возможны непонятные глюки пр смене компилятора или опций компиляции.
3) не важно найден флаг в списке бинарных или нет в значение flags добавляется пробел.

чтобы убрать описанный глюк надо сделать так
                    if ( attr ) {
                        p->attr |= attr;
                    }
                    if ( flags != NULL ) {
                        xstrscat(&p->flags, " ", flags, NULLP);
                        nfree(flags);
                    }

в принципе можно добавить else, но что-то мне подсказывает, что этого делать не стоит...

VEA
--- GoldED+/LNX 1.1.5-b20160322
* Origin:  (2:5037/7)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.051699 секунды