2022-06-25 12:33 ftp://ftp.de.debian.org/debian/pool/main/t/telegram-cli/telegram-cli_1.3.1+git20160323.6547c0b21.orig.tar.xz cppcheck-options: --library=posix --library=gnu --showtime=top5 --check-library --inconclusive --enable=style,information --template=daca2 -D__GNUC__ --platform=unix64 -rp=temp -j2 platform: Linux-5.4.0-110-generic-x86_64-with-glibc2.29 python: 3.8.10 client-version: 1.3.24 compiler: g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 cppcheck: head 2.8 head-info: 63e567e (2022-06-25 08:38:17 +0200) count: 81 81 elapsed-time: 1.2 1.2 head-timing-info: Overall time: 0s old-timing-info: Overall time: 0s head results: tg/loop.c:452:18: warning: Either the condition 'state_file_fd<0' is redundant or write() argument nr 1 can have invalid value. The value is -1 but the valid values are '0:'. [invalidFunctionArg] tg/loop.c:441:21: note: Assuming that condition 'state_file_fd<0' is not redundant tg/loop.c:452:18: note: Invalid argument tg/loop.c:453:10: warning: Either the condition 'state_file_fd<0' is redundant or close() argument nr 1 can have invalid value. The value is -1 but the valid values are '0:'. [invalidFunctionArg] tg/loop.c:441:21: note: Assuming that condition 'state_file_fd<0' is not redundant tg/loop.c:453:10: note: Invalid argument tg/loop.c:283:5: error: Common realloc mistake: 'line_buffer' nulled but not freed upon failure [memleakOnRealloc] tg/loop.c:852:19: style: Local variable 'ev' shadows outer variable [shadowVariable] tg/loop.c:807:22: note: Shadowed declaration tg/loop.c:852:19: note: Shadow variable tg/loop.c:856:19: style: Local variable 'ev' shadows outer variable [shadowVariable] tg/loop.c:807:22: note: Shadowed declaration tg/loop.c:856:19: note: Shadow variable tg/interface.c:4136:19: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] tg/interface.c:4147:19: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] tg/interface.c:719:13: warning: Opposite inner 'if' condition leads to a dead code block. [oppositeInnerCondition] tg/interface.c:719:7: note: outer condition: ev tg/interface.c:719:13: note: opposite inner condition: !ev tg/interface.c:735:13: warning: Opposite inner 'if' condition leads to a dead code block. [oppositeInnerCondition] tg/interface.c:735:7: note: outer condition: ev tg/interface.c:735:13: note: opposite inner condition: !ev tg/interface.c:751:13: warning: Opposite inner 'if' condition leads to a dead code block. [oppositeInnerCondition] tg/interface.c:751:7: note: outer condition: ev tg/interface.c:751:13: note: opposite inner condition: !ev tg/interface.c:753:13: warning: Opposite inner 'if' condition leads to a dead code block. [oppositeInnerCondition] tg/interface.c:753:7: note: outer condition: ev tg/interface.c:753:13: note: opposite inner condition: !ev tg/interface.c:764:13: warning: Opposite inner 'if' condition leads to a dead code block. [oppositeInnerCondition] tg/interface.c:764:7: note: outer condition: ev tg/interface.c:764:13: note: opposite inner condition: !ev tg/interface.c:766:13: warning: Opposite inner 'if' condition leads to a dead code block. [oppositeInnerCondition] tg/interface.c:766:7: note: outer condition: ev tg/interface.c:766:13: note: opposite inner condition: !ev tg/interface.c:813:13: warning: Opposite inner 'if' condition leads to a dead code block. [oppositeInnerCondition] tg/interface.c:813:7: note: outer condition: ev tg/interface.c:813:13: note: opposite inner condition: !ev tg/interface.c:822:13: warning: Opposite inner 'if' condition leads to a dead code block. [oppositeInnerCondition] tg/interface.c:822:7: note: outer condition: ev tg/interface.c:822:13: note: opposite inner condition: !ev tg/interface.c:1307:9: warning: Opposite inner 'if' condition leads to a dead code block. [oppositeInnerCondition] tg/interface.c:1306:30: note: outer condition: !ev tg/interface.c:1307:9: note: opposite inner condition: ev tg/interface.c:1458:25: style: Redundant condition: If 'EXPR > 10', the comparison 'EXPR > 0' is always true. [redundantCondition] tg/interface.c:752:3: style: The if condition is the same as the previous if condition [duplicateCondition] tg/interface.c:751:7: note: First condition tg/interface.c:752:3: note: Second condition tg/interface.c:765:3: style: The if condition is the same as the previous if condition [duplicateCondition] tg/interface.c:764:7: note: First condition tg/interface.c:765:3: note: Second condition tg/interface.c:3450:7: style: Condition 'line' is always true [knownConditionTrueFalse] tg/main.c:180:28: portability: Non reentrant function 'getpwent' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwent_r'. [prohibitedgetpwentCalled] tg/main.c:563:15: portability: Non reentrant function 'getpwnam' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwnam_r'. [prohibitedgetpwnamCalled] tg/main.c:574:25: portability: Non reentrant function 'getgrnam' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getgrnam_r'. [prohibitedgetgrnamCalled] tg/main.c:591:12: portability: Non reentrant function 'getpwuid' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwuid_r'. [prohibitedgetpwuidCalled] tg/main.c:192:9: style: Local variable 'config_directory' shadows outer variable [shadowVariable] tg/main.c:102:7: note: Shadowed declaration tg/main.c:192:9: note: Shadow variable tg/interface.c:2326:42: style:inconclusive: Function 'print_success_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:712:42: note: Function 'print_success_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2326:42: note: Function 'print_success_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2342:51: style:inconclusive: Function 'print_msg_list_success_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:697:51: note: Function 'print_msg_list_success_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2342:51: note: Function 'print_msg_list_success_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2352:43: style:inconclusive: Function 'print_msg_list_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:695:43: note: Function 'print_msg_list_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2352:43: note: Function 'print_msg_list_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2384:51: style:inconclusive: Function 'print_msg_list_history_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:696:51: note: Function 'print_msg_list_history_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2384:51: note: Function 'print_msg_list_history_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2395:38: style:inconclusive: Function 'print_msg_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:709:38: note: Function 'print_msg_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2395:38: note: Function 'print_msg_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2418:44: style:inconclusive: Function 'print_user_list_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:694:44: note: Function 'print_user_list_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2418:44: note: Function 'print_user_list_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2450:39: style:inconclusive: Function 'print_user_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:707:39: note: Function 'print_user_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2450:39: note: Function 'print_user_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2523:39: style:inconclusive: Function 'print_peer_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:708:39: note: Function 'print_peer_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2523:39: note: Function 'print_peer_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2543:43: style:inconclusive: Function 'print_filename_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:702:43: note: Function 'print_filename_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2543:43: note: Function 'print_filename_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2568:41: style:inconclusive: Function 'print_string_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:703:41: note: Function 'print_string_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2568:41: note: Function 'print_string_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2592:42: style:inconclusive: Function 'open_filename_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:704:42: note: Function 'open_filename_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2592:42: note: Function 'open_filename_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2613:44: style:inconclusive: Function 'print_chat_info_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:699:44: note: Function 'print_chat_info_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2613:44: note: Function 'print_chat_info_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2656:47: style:inconclusive: Function 'print_channel_info_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:700:47: note: Function 'print_channel_info_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2656:47: note: Function 'print_channel_info_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2726:44: style:inconclusive: Function 'print_user_info_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:701:44: note: Function 'print_user_info_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2726:44: note: Function 'print_user_info_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2726:93: style:inconclusive: Function 'print_user_info_gw' argument 4 names different: declaration 'C' definition 'U'. [funcArgNamesDifferent] tg/interface.c:701:92: note: Function 'print_user_info_gw' argument 4 names different: declaration 'C' definition 'U'. tg/interface.c:2726:93: note: Function 'print_user_info_gw' argument 4 names different: declaration 'C' definition 'U'. tg/interface.c:2772:46: style:inconclusive: Function 'print_secret_chat_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:705:46: note: Function 'print_secret_chat_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2772:46: note: Function 'print_secret_chat_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2799:46: style:inconclusive: Function 'print_dialog_list_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:698:46: note: Function 'print_dialog_list_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:2799:46: note: Function 'print_dialog_list_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:3309:39: style:inconclusive: Function 'print_card_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. [funcArgNamesDifferent] tg/interface.c:706:39: note: Function 'print_card_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:3309:39: note: Function 'print_card_gw' argument 1 names different: declaration 'TLS' definition 'TLSR'. tg/interface.c:221:48: style: Parameter 'end' can be declared as pointer to const [constParameter] tg/interface.c:796:96: style: Parameter 'ev' can be declared as pointer to const [constParameter] tg/interface.c:1780:44: style: Parameter 'cmd' can be declared as pointer to const [constParameter] tg/interface.c:2326:42: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2352:43: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2395:38: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2418:44: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2450:39: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2474:39: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2498:42: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2543:43: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2568:41: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2592:42: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2613:44: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2656:47: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2726:44: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2772:46: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2799:46: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2954:39: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:2979:34: style: Parameter 'ev' can be declared as pointer to const [constParameter] tg/interface.c:3017:47: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:3033:55: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:3052:42: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:3084:35: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:3094:40: style: Parameter 'ev' can be declared as pointer to const [constParameter] tg/interface.c:3185:40: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:3221:40: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:3255:47: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:3300:43: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:3309:39: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] tg/interface.c:3842:33: style: Parameter 'ev' can be declared as pointer to const [constParameter] tg/interface.c:4017:47: style: Parameter 'ev' can be declared as pointer to const [constParameter] tg/interface.c:4135:32: style: Parameter 'ev' can be declared as pointer to const [constParameter] tg/interface.c:4146:37: style: Parameter 'ev' can be declared as pointer to const [constParameter] tg/interface.c:4151:34: style: Parameter 'ev' can be declared as pointer to const [constParameter] tg/interface.c:592:10: style: Variable 'ok' is assigned a value that is never used. [unreadVariable] tg/interface.c:596:7: style: Variable 'l' is assigned a value that is never used. [unreadVariable] tg/interface.c:599:5: style: Variable 'l' is assigned a value that is never used. [unreadVariable] diff: head tg/interface.c:1780:44: style: Parameter 'cmd' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:1780:44: style: Parameter 'cmd' can be declared with const [constParameter] head tg/interface.c:221:48: style: Parameter 'end' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:221:48: style: Parameter 'end' can be declared with const [constParameter] head tg/interface.c:2326:42: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2326:42: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2352:43: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2352:43: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2395:38: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2395:38: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2418:44: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2418:44: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2450:39: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2450:39: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2474:39: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2474:39: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2498:42: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2498:42: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2543:43: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2543:43: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2568:41: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2568:41: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2592:42: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2592:42: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2613:44: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2613:44: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2656:47: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2656:47: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2726:44: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2726:44: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2772:46: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2772:46: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2799:46: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2799:46: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2954:39: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2954:39: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:2979:34: style: Parameter 'ev' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:2979:34: style: Parameter 'ev' can be declared with const [constParameter] head tg/interface.c:3017:47: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:3017:47: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:3033:55: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:3033:55: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:3052:42: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:3052:42: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:3084:35: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:3084:35: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:3094:40: style: Parameter 'ev' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:3094:40: style: Parameter 'ev' can be declared with const [constParameter] head tg/interface.c:3185:40: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:3185:40: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:3221:40: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:3221:40: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:3255:47: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:3255:47: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:3300:43: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:3300:43: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:3309:39: style: Parameter 'TLSR' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:3309:39: style: Parameter 'TLSR' can be declared with const [constParameter] head tg/interface.c:3842:33: style: Parameter 'ev' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:3842:33: style: Parameter 'ev' can be declared with const [constParameter] head tg/interface.c:4017:47: style: Parameter 'ev' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:4017:47: style: Parameter 'ev' can be declared with const [constParameter] head tg/interface.c:4135:32: style: Parameter 'ev' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:4135:32: style: Parameter 'ev' can be declared with const [constParameter] head tg/interface.c:4146:37: style: Parameter 'ev' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:4146:37: style: Parameter 'ev' can be declared with const [constParameter] head tg/interface.c:4151:34: style: Parameter 'ev' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:4151:34: style: Parameter 'ev' can be declared with const [constParameter] head tg/interface.c:796:96: style: Parameter 'ev' can be declared as pointer to const [constParameter] 2.8 tg/interface.c:796:96: style: Parameter 'ev' can be declared with const [constParameter] DONE