أهلا،
أحدث علامات التصنيف العالمية (249c3c0c2a974ab03f7c307684563239096399a8) لا تكتشف الرمز ap_os_create_privileged_process
في هذا الكود (قم بتضمين / ap_mpm.h من 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);
أعاد هذا الأمر إخراجًا فارغًا:
ctags -x --C-kinds=fpvx --languages=+C --language-force=C include/ap_mpm.h|grep ap_os_create_privileged_process
ومع ذلك ، فإن إصدار علامات ctags العالمية من 7 مايو 2016 (e5b7a2508db6e1374ea78a300cc9b45f4b26b02a) اكتشفه بشكل صحيح:
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(
لا يمكنني حتى إصلاح هذا عن طريق أي خيار -I
. من الضروري استخدام المحلل اللغوي OldC
في هذه الحالة.
شكرا لك.
آسف على التأخير. عندي سؤال. تم العثور على e5b7a25 عن طريق بوابة bisect؟ أم لا؟
أعتقد أنه قد يتم تقديم هذا الخطأ عندما عمل pragmaware على سمة للوظيفة التي طلبت منه إصلاحها. هذا و # 1241 قد يرصد نفس الخطأ.
هذا خطأ ولكن قد يكون من الصعب إصلاحه ، على ما أعتقد.
ليس لدي وقت لإصلاحه الآن ، لكن هذا الخطأ له تأثيرات على حياتي اليومية. سأجد الوقت على أي حال.
عندما أجد الوقت ، سأخصص هذا لي. هذا يعني أنه حتى حقل المحال إليه لا شيء ، pragmaware ، لديك تغيير لإصلاح هذا :-P.
ربما يمكن للمحلل أن يكون لديه استدلالات لهذا النوع من الأشياء ، لكن حسنًا ، تركت pragmaware يقرر ما إذا كان الأمر يستحق ذلك / يمكن
ولكن مع معالجه المسبق الجديد ، يمكنك بسهولة حل المشكلة باستخدام -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(
نعم ، كان هذا الجزء من المحلل اللغوي "متساهلًا" في البداية ، ثم جعلته صارمًا للغاية. أعتقد أنني سأجد طريقة لجعلها تذهب في مكان ما في المنتصف. سأحاول إصلاحه الآن.
pragmaware ، شكرا لك.
هل يمكنك أن تسأل عن الخيار القوي -D
لـ http://docs.ctags.io/en/latest/parser-cxx.html
.
هذه ليست المرة الأولى التي نسمح فيها للمستخدم بمعرفة الخيار -D
.
مغلق عبر # 1245
يكتشف Ctags 6e839be606cbc750e6e6a7e6d16fe375adbef5ca هذا الرمز المستقل جيدًا. لكن ملف الرأس الأولي يحتوي على التمهيد التالي لهذا الرمز:
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);
ولسبب ما لا يكتشفها ctags في هذه الحالة. قد تكون هذه المشكلة متعلقة بـ # 1251.
حسنًا ، من الصعب جدًا إصلاح هذه الحالة دون كسر الحالات الأخرى.
وهذا يعني أن إصدارًا أقدم من المحلل اللغوي قد التقط هذا ولكن كسر في أماكن أخرى ....