В libtidy, как читать строковые параметры

я использую libtidy и необходимо получить текущее значение строкового параметра (например, TidyOptErrFile, a.k.a. error-file).

Даже после прочтения tidy исходный код, Я не могу понять, какую функцию использовать для читать текущая стоимость такой опции.

TidyOptGetVal() Функция казалась многообещающей, но что бы я ни делал, она всегда возвращает нулевой указатель. Вот моя минималистская попытка (в C ++, поэтому я могу использовать auto ключевое слово):

#include <iostream>
#include <tidy.h>
#include <tidybuffio.h>
#include <tidyenum.h>

using namespace std;

int main(int argc, const char * argv[]) {

auto tidyDoc = tidyCreate();// The following should set the `error-file` property to `Foobar`
tidyOptParseValue(tidyDoc, "TidyErrFile", "Foobar");

// The type is `ctmbstr` which is just an alias for `const char*`
auto errorFile = tidyOptGetValue(tidyDoc, TidyErrFile);

if (errorFile==nullptr) {

cout << "Null pointer" << endl;

} else {

cout << errorFile << endl;

}

tidyRelease(tidyDoc);

return 0;

}

1

Решение

Я нашел причину проблемы, которую я опубликую для дальнейшего использования.

Функция tidyOptParseValue() принимает в качестве второго аргумента название опции, как указано в API.

Так, например, имя опции в этом случае должно быть error-file (не имя перечисления, найденного в исходном коде).

Исправленная строка должна быть

    tidyOptParseValue(tidyDoc, "error-file", "Foobar");

Используя это исправление, слово Foobar печатается, как и ожидалось.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]