Olá,
As últimas ctags universais (249c3c0c2a974ab03f7c307684563239096399a8) não detectam o símbolo ap_os_create_privileged_process
neste código (inclua / ap_mpm.h de httpd 2.4.18):
AP_DECLARE(apr_status_t) ap_os_create_privileged_process(
const request_rec *r,
apr_proc_t *newproc,
const char *progname,
const char * const *args,
const char * const *env,
apr_procattr_t *attr,
apr_pool_t *p);
Este comando retornou uma saída vazia:
ctags -x --C-kinds=fpvx --languages=+C --language-force=C include/ap_mpm.h|grep ap_os_create_privileged_process
No entanto, a edição de ctags universais de 7 de maio de 2016 (e5b7a2508db6e1374ea78a300cc9b45f4b26b02a) o detectou corretamente:
ctags -x --C-kinds=fpvx --languages=+C --language-force=C include/ap_mpm.h|grep ap_os_create_privileged_process
ap_os_create_privileged_process prototype 107 include/ap_mpm.h AP_DECLARE(apr_status_t) ap_os_create_privileged_process(
Não consigo nem consertar isso com nenhuma opção de -I
. É necessário usar o analisador OldC
neste caso.
Obrigada.
Desculpe pelo atraso. Eu tenho uma pergunta. e5b7a25 é encontrado por git bisect? ou não?
Acho que esse bug pode ser introduzido quando @pragmaware trabalhou no atributo para a função que pedi a ele para corrigir. Este e o # 1241 podem detectar o mesmo bug.
Este é um bug, mas pode ser difícil de consertar, eu acho.
Não tenho tempo para consertar agora, mas esse bug tem impactos na minha vida diária. Vou encontrar tempo de qualquer maneira.
Quando eu encontrar tempo, vou atribuir isso a mim. Isso significa que até que o campo responsáveis seja nulo, @pragmaware , você tem uma alteração para corrigir isso :-P.
Talvez o analisador possa ter heurísticas para esse tipo de coisa, mas bem, deixo @pragmaware decidir se vale a pena / viável sem quebrar muitas coisas.
Mas com seu novo pré-processador, você pode facilmente corrigir o problema com -D 'AP_DECLARE(t)=t'
:
$ ./ctags -x --C-kinds=+p -D 'AP_DECLARE(t)=t' /tmp/1242.c
ap_os_create_privileged_process prototype 1 /tmp/1242.c AP_DECLARE(apr_status_t) ap_os_create_privileged_process(
Sim, essa parte do analisador foi primeiro muito "permissiva", depois tornei-a muito rígida. Acho que vou ter que encontrar uma maneira de fazer isso ir para algum lugar no meio. Vou tentar consertar agora.
@pragmaware , obrigado.
Você poderia escrever sobre a poderosa opção -D
para http://docs.ctags.io/en/latest/parser-cxx.html
.
Esta não é a primeira vez que informamos a um usuário -D
option.
Fechado via # 1245
Ctags 6e839be606cbc750e6e6a7e6d16fe375adbef5ca detecta bem este símbolo autônomo. Mas o arquivo de cabeçalho inicial contém o seguinte preâmbulo para este símbolo:
AP_DECLARE_HOOK(int, mpm, (apr_pool_t *pconf, apr_pool_t *plog, server_rec *server_conf))
/**
* comment ...
*/
AP_DECLARE(apr_status_t) ap_os_create_privileged_process(
const request_rec *r,
apr_proc_t *newproc,
const char *progname,
const char * const *args,
const char * const *env,
apr_procattr_t *attr,
apr_pool_t *p);
E, por algum motivo, os ctags não o detectam neste caso. Esse problema pode estar relacionado a # 1251.
Hm, este caso é bastante difícil de consertar sem quebrar outros casos.
Ou seja, uma versão mais antiga do analisador detectou este, mas quebrou em outros lugares ....