2024-04-17 14:19 ftp://ftp.de.debian.org/debian/pool/main/j/joe/joe_4.6.orig.tar.gz cppcheck-options: --library=posix --library=gnu --library=bsd --inconclusive --enable=style,information --inline-suppr --template=daca2 --disable=missingInclude --suppress=unmatchedSuppression --check-library --debug-warnings --suppress=autoNoType --suppress=valueFlowBailout --suppress=bailoutUninitVar --suppress=symbolDatabaseWarning -D__GNUC__ --platform=unix64 -j4 platform: Linux-6.1.0-18-amd64-x86_64-with-glibc2.36 python: 3.11.2 client-version: 1.3.56 compiler: g++ (Debian 12.2.0-14) 12.2.0 cppcheck: head 2.13.0 head-info: 3a212f1 (2024-04-17 11:43:08 +0200) count: 414 358 elapsed-time: 32.4 44.8 head-timing-info: old-timing-info: head results: joe-4.6/joe/blocks.c:193:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIZEOF_INT [valueFlowBailoutIncompleteVar] joe-4.6/joe/blocks.c:361:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIZEOF_INT [valueFlowBailoutIncompleteVar] joe-4.6/joe/blocks.c:453:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIZEOF_INT [valueFlowBailoutIncompleteVar] joe-4.6/joe/blocks.c:120:21: style:inconclusive: Function 'msetP' argument 1 names different: declaration 'dest' definition 'd'. [funcArgNamesDifferent] joe-4.6/joe/blocks.h:40:21: note: Function 'msetP' argument 1 names different: declaration 'dest' definition 'd'. joe-4.6/joe/blocks.c:120:21: note: Function 'msetP' argument 1 names different: declaration 'dest' definition 'd'. joe-4.6/joe/cclass.c:282:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/cclass.c:531:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/cclass.c:696:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/cclass.c:935:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/cclass.c:1098:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/charmap.c:1392:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable JOEDATA [valueFlowBailoutIncompleteVar] joe-4.6/joe/b.c:2068:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable seg [valueFlowBailoutIncompleteVar] joe-4.6/joe/b.c:2378:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable seg [valueFlowBailoutIncompleteVar] joe-4.6/joe/b.c:2778:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOENT [valueFlowBailoutIncompleteVar] joe-4.6/joe/b.c:3185:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] joe-4.6/joe/b.c:3386:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] joe-4.6/joe/b.c:3468:42: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EEXIST [valueFlowBailoutIncompleteVar] joe-4.6/joe/charmap.c:1005:34: style: Parameter 'a' can be declared as pointer to const. However it seems that 'pair_cmp' is a callback function, if 'a' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/charmap.c:1131:95: note: You might need to cast the function pointer here joe-4.6/joe/charmap.c:1005:34: note: Parameter 'a' can be declared as pointer to const joe-4.6/joe/charmap.c:1005:49: style: Parameter 'b' can be declared as pointer to const. However it seems that 'pair_cmp' is a callback function, if 'b' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/charmap.c:1131:95: note: You might need to cast the function pointer here joe-4.6/joe/charmap.c:1005:49: note: Parameter 'b' can be declared as pointer to const joe-4.6/joe/charmap.c:1043:41: style: Parameter 'map' can be declared as pointer to const. However it seems that 'byte_isspace' is a callback function, if 'map' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/charmap.c:1116:18: note: You might need to cast the function pointer here joe-4.6/joe/charmap.c:1043:41: note: Parameter 'map' can be declared as pointer to const joe-4.6/joe/charmap.c:1357:8: style: Variable 'p' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/charmap.c:1459:33: style: Parameter 'map' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/charmap.c:1464:37: style: Parameter 'map' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/cmd.c:558:30: style: Parameter 's' can be declared as pointer to const. However it seems that 'docmd' is a callback function, if 's' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/cmd.c:594:54: note: You might need to cast the function pointer here joe-4.6/joe/cmd.c:558:30: note: Parameter 's' can be declared as pointer to const joe-4.6/joe/cclass.c:25:54: style:inconclusive: Function 'interval_sort' argument 2 names different: declaration 'size' definition 'num'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:18:54: note: Function 'interval_sort' argument 2 names different: declaration 'size' definition 'num'. joe-4.6/joe/cclass.c:25:54: note: Function 'interval_sort' argument 2 names different: declaration 'size' definition 'num'. joe-4.6/joe/cclass.c:65:39: style:inconclusive: Function 'rminterval' argument 1 names different: declaration 'item' definition 'interval_list'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:34:39: note: Function 'rminterval' argument 1 names different: declaration 'item' definition 'interval_list'. joe-4.6/joe/cclass.c:65:39: note: Function 'rminterval' argument 1 names different: declaration 'item' definition 'interval_list'. joe-4.6/joe/cclass.c:147:58: warning: Function 'interval_set' argument order different: declaration 'list, array, size, map' definition 'interval_list, list, size, map' [funcArgOrderDifferent] joe-4.6/joe/cclass.h:40:58: note: Function 'interval_set' argument order different: declaration 'list, array, size, map' definition 'interval_list, list, size, map' joe-4.6/joe/cclass.c:147:58: note: Function 'interval_set' argument order different: declaration 'list, array, size, map' definition 'interval_list, list, size, map' joe-4.6/joe/cclass.c:155:67: style:inconclusive: Function 'interval_lookup' argument 3 names different: declaration 'ch' definition 'item'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:43:67: note: Function 'interval_lookup' argument 3 names different: declaration 'ch' definition 'item'. joe-4.6/joe/cclass.c:155:67: note: Function 'interval_lookup' argument 3 names different: declaration 'ch' definition 'item'. joe-4.6/joe/cclass.c:1212:33: style:inconclusive: Function 'cclass_init' argument 1 names different: declaration 'cclass' definition 'm'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:157:33: note: Function 'cclass_init' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1212:33: note: Function 'cclass_init' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1219:32: style:inconclusive: Function 'cclass_clr' argument 1 names different: declaration 'cclass' definition 'm'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:160:32: note: Function 'cclass_clr' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1219:32: note: Function 'cclass_clr' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1267:32: style:inconclusive: Function 'cclass_add' argument 1 names different: declaration 'cclass' definition 'm'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:163:32: note: Function 'cclass_add' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1267:32: note: Function 'cclass_add' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1308:34: style:inconclusive: Function 'cclass_union' argument 1 names different: declaration 'cclass' definition 'm'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:169:34: note: Function 'cclass_union' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1308:34: note: Function 'cclass_union' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1316:34: style:inconclusive: Function 'cclass_merge' argument 1 names different: declaration 'cclass' definition 'm'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:170:34: note: Function 'cclass_merge' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1316:34: note: Function 'cclass_merge' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1316:54: style:inconclusive: Function 'cclass_merge' argument 2 names different: declaration 'intervals' definition 'array'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:170:59: note: Function 'cclass_merge' argument 2 names different: declaration 'intervals' definition 'array'. joe-4.6/joe/cclass.c:1316:54: note: Function 'cclass_merge' argument 2 names different: declaration 'intervals' definition 'array'. joe-4.6/joe/cclass.c:1327:32: style:inconclusive: Function 'cclass_sub' argument 1 names different: declaration 'cclass' definition 'm'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:166:32: note: Function 'cclass_sub' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1327:32: note: Function 'cclass_sub' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1367:33: style:inconclusive: Function 'cclass_diff' argument 1 names different: declaration 'cclass' definition 'm'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:173:33: note: Function 'cclass_diff' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1367:33: note: Function 'cclass_diff' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1379:32: style:inconclusive: Function 'cclass_inv' argument 1 names different: declaration 'cclass' definition 'm'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:176:32: note: Function 'cclass_inv' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1379:32: note: Function 'cclass_inv' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1425:32: style:inconclusive: Function 'cclass_opt' argument 1 names different: declaration 'cclass' definition 'm'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:184:32: note: Function 'cclass_opt' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1425:32: note: Function 'cclass_opt' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1432:34: style:inconclusive: Function 'cclass_lookup' argument 1 names different: declaration 'cclass' definition 'm'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:187:34: note: Function 'cclass_lookup' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1432:34: note: Function 'cclass_lookup' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1437:33: style:inconclusive: Function 'cclass_show' argument 1 names different: declaration 'cclass' definition 'm'. [funcArgNamesDifferent] joe-4.6/joe/cclass.h:189:33: note: Function 'cclass_show' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:1437:33: note: Function 'cclass_show' argument 1 names different: declaration 'cclass' definition 'm'. joe-4.6/joe/cclass.c:33:42: style: Parameter 'array' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/cclass.c:147:90: style: Parameter 'list' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/cclass.c:351:48: style: Parameter 'array' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/cclass.c:735:50: style: Parameter 'array' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/cclass.c:756:8: style: Variable 'val' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/cclass.c:1137:49: style: Parameter 'array' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/cclass.c:1308:52: style: Parameter 'n' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/cclass.c:1316:54: style: Parameter 'array' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/cclass.c:1367:51: style: Parameter 'n' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/cclass.c:1437:33: style: Parameter 'm' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/frag.c:117:3: portability: Casting between unsigned char * and double * which have an incompatible binary data representation. [invalidPointerCast] joe-4.6/joe/frag.c:7:33: style:inconclusive: Function 'iz_frag' argument 2 names different: declaration 'alignmnet' definition 'alignment'. [funcArgNamesDifferent] joe-4.6/joe/frag.h:17:32: note: Function 'iz_frag' argument 2 names different: declaration 'alignmnet' definition 'alignment'. joe-4.6/joe/frag.c:7:33: note: Function 'iz_frag' argument 2 names different: declaration 'alignmnet' definition 'alignment'. joe-4.6/joe/frag.c:55:35: style:inconclusive: Function 'align_frag' argument 2 names different: declaration 'n' definition 'alignment'. [funcArgNamesDifferent] joe-4.6/joe/frag.h:29:36: note: Function 'align_frag' argument 2 names different: declaration 'n' definition 'alignment'. joe-4.6/joe/frag.c:55:35: note: Function 'align_frag' argument 2 names different: declaration 'n' definition 'alignment'. joe-4.6/joe/frag.c:75:32: style:inconclusive: Function 'emith' argument 2 names different: declaration 'n' definition 'c'. [funcArgNamesDifferent] joe-4.6/joe/frag.h:41:32: note: Function 'emith' argument 2 names different: declaration 'n' definition 'c'. joe-4.6/joe/frag.c:75:32: note: Function 'emith' argument 2 names different: declaration 'n' definition 'c'. joe-4.6/joe/frag.c:92:30: style:inconclusive: Function 'emiti' argument 2 names different: declaration 'n' definition 'c'. [funcArgNamesDifferent] joe-4.6/joe/frag.h:42:30: note: Function 'emiti' argument 2 names different: declaration 'n' definition 'c'. joe-4.6/joe/frag.c:92:30: note: Function 'emiti' argument 2 names different: declaration 'n' definition 'c'. joe-4.6/joe/frag.c:192:34: style:inconclusive: Function 'fetchh' argument 2 names different: declaration 'pc' definition 'pcp'. [funcArgNamesDifferent] joe-4.6/joe/frag.h:62:34: note: Function 'fetchh' argument 2 names different: declaration 'pc' definition 'pcp'. joe-4.6/joe/frag.c:192:34: note: Function 'fetchh' argument 2 names different: declaration 'pc' definition 'pcp'. joe-4.6/joe/frag.c:205:32: style:inconclusive: Function 'fetchi' argument 2 names different: declaration 'pc' definition 'pcp'. [funcArgNamesDifferent] joe-4.6/joe/frag.h:61:32: note: Function 'fetchi' argument 2 names different: declaration 'pc' definition 'pcp'. joe-4.6/joe/frag.c:205:32: note: Function 'fetchi' argument 2 names different: declaration 'pc' definition 'pcp'. joe-4.6/joe/frag.c:218:34: style:inconclusive: Function 'fetchp' argument 2 names different: declaration 'pc' definition 'pcp'. [funcArgNamesDifferent] joe-4.6/joe/frag.h:63:34: note: Function 'fetchp' argument 2 names different: declaration 'pc' definition 'pcp'. joe-4.6/joe/frag.c:218:34: note: Function 'fetchp' argument 2 names different: declaration 'pc' definition 'pcp'. joe-4.6/joe/frag.c:143:41: style: Parameter 's' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/frag.c:192:20: style: Parameter 'f' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/frag.c:205:18: style: Parameter 'f' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/frag.c:218:20: style: Parameter 'f' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/colors.c:325:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable JOEDATA [valueFlowBailoutIncompleteVar] joe-4.6/joe/gettext.c:156:2: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable JOEDATA [valueFlowBailoutIncompleteVar] joe-4.6/joe/hash.c:110:20: style: Parameter 'ht' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/hash.c:241:22: style: Parameter 'ht' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/bw.c:1195:65: error: Array 'msg[37]' accessed at index 56, which is out of bounds. [arrayIndexOutOfBounds] joe-4.6/joe/bw.c:1192:14: note: Assignment 'msg="** Line %r Col %c Offset %o(0x%O) %e %a(0x%A) Width %w **"', assigned value is "** Line %r Col %c Offset %o(0x%O) %e %a(0x%A) Width %w **" joe-4.6/joe/bw.c:1195:65: note: Array index out of bounds joe-4.6/joe/bw.c:1266:9: warning: Identical condition and return expression 'rtn', return value is always 0 [identicalConditionAfterEarlyExit] joe-4.6/joe/bw.c:1262:6: note: If condition 'rtn' is true, the function will return/exit joe-4.6/joe/bw.c:1266:9: note: Returning identical expression 'rtn' joe-4.6/joe/bw.c:304:111: style: Condition 'w->b->eof->line>=w->top->line+w->h' is always false [knownConditionTrueFalse] joe-4.6/joe/bw.c:304:40: note: Assuming that condition 'l+n>=w->top->line+w->h' is not redundant joe-4.6/joe/bw.c:304:73: note: Assuming that condition 'l+n==w->b->eof->line' is not redundant joe-4.6/joe/bw.c:304:111: note: Condition 'w->b->eof->line>=w->top->line+w->h' is always false joe-4.6/joe/bw.c:771:121: style: Condition '!from' is always true [knownConditionTrueFalse] joe-4.6/joe/bw.c:760:0: note: Assignment 'from=0', assigned value is 0 joe-4.6/joe/bw.c:771:121: note: Condition '!from' is always true joe-4.6/joe/bw.c:1071:8: error: Expression 'ITEM=(void*)(file_pos.link.prev),((struct file_pos*)ITEM)->link.prev->link.next=((struct file_pos*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] joe-4.6/joe/bw.c:66:17: style:inconclusive: Function 'bwfllwh' argument 1 names different: declaration 'w' definition 'thew'. [funcArgNamesDifferent] joe-4.6/joe/bw.h:44:17: note: Function 'bwfllwh' argument 1 names different: declaration 'w' definition 'thew'. joe-4.6/joe/bw.c:66:17: note: Function 'bwfllwh' argument 1 names different: declaration 'w' definition 'thew'. joe-4.6/joe/bw.c:118:17: style:inconclusive: Function 'bwfllwt' argument 1 names different: declaration 'w' definition 'thew'. [funcArgNamesDifferent] joe-4.6/joe/bw.h:43:17: note: Function 'bwfllwt' argument 1 names different: declaration 'w' definition 'thew'. joe-4.6/joe/bw.c:118:17: note: Function 'bwfllwt' argument 1 names different: declaration 'w' definition 'thew'. joe-4.6/joe/bw.c:220:6: style: Variable 'bw' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/bw.c:378:14: style: Variable 'syn' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/bw.c:1099:19: style: Variable 'p' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/bw.c:1137:8: style: Variable 'bw' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/bw.c:1149:28: style: Parameter 'b' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/bw.c:39:9: style: Variable 'dist' is assigned a value that is never used. [unreadVariable] joe-4.6/joe/help.c:31:31: style: Parameter 'bf' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/lattr.c:52:2: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable saved_s [valueFlowBailoutIncompleteVar] joe-4.6/joe/lattr.c:87:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable saved_s [valueFlowBailoutIncompleteVar] joe-4.6/joe/kbd.c:405:22: style: Parameter 'k' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/lattr.c:105:49: style:inconclusive: Function 'lattr_check' argument 2 names different: declaration 'size' definition 'amnt'. [funcArgNamesDifferent] joe-4.6/joe/lattr.h:52:49: note: Function 'lattr_check' argument 2 names different: declaration 'size' definition 'amnt'. joe-4.6/joe/lattr.c:105:49: note: Function 'lattr_check' argument 2 names different: declaration 'size' definition 'amnt'. joe-4.6/joe/lattr.c:134:23: style: Parameter 'b' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/lattr.c:134:43: style: Parameter 'db' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/lattr.c:233:51: style: Parameter 'db' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/lattr.c:243:76: style: Parameter 'state' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/lattr.c:314:21: style: Variable 'prev' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/main.c:386:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable JOERC [valueFlowBailoutIncompleteVar] joe-4.6/joe/macro.c:489:7: style: The if condition is the same as the previous if condition [duplicateCondition] joe-4.6/joe/macro.c:487:7: note: First condition joe-4.6/joe/macro.c:489:7: note: Second condition joe-4.6/joe/macro.c:321:22: style:inconclusive: Function 'uquery' argument 2 names different: declaration 'c' definition 'k'. [funcArgNamesDifferent] joe-4.6/joe/macro.h:95:22: note: Function 'uquery' argument 2 names different: declaration 'c' definition 'k'. joe-4.6/joe/macro.c:321:22: note: Function 'uquery' argument 2 names different: declaration 'c' definition 'k'. joe-4.6/joe/macro.c:581:22: style:inconclusive: Function 'utimer' argument 2 names different: declaration 'c' definition 'k'. [funcArgNamesDifferent] joe-4.6/joe/macro.h:97:22: note: Function 'utimer' argument 2 names different: declaration 'c' definition 'k'. joe-4.6/joe/macro.c:581:22: note: Function 'utimer' argument 2 names different: declaration 'c' definition 'k'. joe-4.6/joe/macro.c:594:21: style:inconclusive: Function 'ustop' argument 2 names different: declaration 'c' definition 'k'. [funcArgNamesDifferent] joe-4.6/joe/macro.h:93:21: note: Function 'ustop' argument 2 names different: declaration 'c' definition 'k'. joe-4.6/joe/macro.c:594:21: note: Function 'ustop' argument 2 names different: declaration 'c' definition 'k'. joe-4.6/joe/macro.c:633:23: style:inconclusive: Function 'umacros' argument 2 names different: declaration 'c' definition 'k'. [funcArgNamesDifferent] joe-4.6/joe/macro.h:96:23: note: Function 'umacros' argument 2 names different: declaration 'c' definition 'k'. joe-4.6/joe/macro.c:633:23: note: Function 'umacros' argument 2 names different: declaration 'c' definition 'k'. joe-4.6/joe/macro.c:389:6: style: Local variable 'negarg' shadows outer variable [shadowVariable] joe-4.6/joe/macro.c:798:5: note: Shadowed declaration joe-4.6/joe/macro.c:389:6: note: Shadow variable joe-4.6/joe/macro.c:64:59: style: Argument '(macro->size=8)*((ptrdiff_t)sizeof(struct MACRO*))' to function joe_malloc is always 64. It does not matter what value 'macro->size' has. [knownArgument] joe-4.6/joe/macro.c:321:15: style: Parameter 'w' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/macro.c:744:22: style: Parameter 'w' can be declared as pointer to const. However it seems that 'ifabrt' is a callback function, if 'w' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/macro.c:754:72: note: You might need to cast the function pointer here joe-4.6/joe/macro.c:744:22: note: Parameter 'w' can be declared as pointer to const joe-4.6/joe/macro.c:744:31: style: Parameter 'object' can be declared as pointer to const. However it seems that 'ifabrt' is a callback function, if 'object' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/macro.c:754:72: note: You might need to cast the function pointer here joe-4.6/joe/macro.c:744:31: note: Parameter 'object' can be declared as pointer to const joe-4.6/joe/colors.c:520:45: style:inconclusive: Function 'preprocess_line' argument 2 names different: declaration 'buf' definition 'bf'. [funcArgNamesDifferent] joe-4.6/joe/colors.c:76:45: note: Function 'preprocess_line' argument 2 names different: declaration 'buf' definition 'bf'. joe-4.6/joe/colors.c:520:45: note: Function 'preprocess_line' argument 2 names different: declaration 'buf' definition 'bf'. joe-4.6/joe/colors.c:679:82: style:inconclusive: Function 'get_palette' argument 4 names different: declaration 'idx' definition 'endidx'. [funcArgNamesDifferent] joe-4.6/joe/colors.c:71:82: note: Function 'get_palette' argument 4 names different: declaration 'idx' definition 'endidx'. joe-4.6/joe/colors.c:679:82: note: Function 'get_palette' argument 4 names different: declaration 'idx' definition 'endidx'. joe-4.6/joe/colors.c:620:57: style: Parameter 'spec' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/colors.c:692:25: style: Parameter 'palette' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/colors.c:871:22: style: Variable 'cdef' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/menu.c:574:8: warning: Identical inner 'if' condition is always true. [identicalInnerCondition] joe-4.6/joe/menu.c:573:19: note: outer condition: m->func joe-4.6/joe/menu.c:574:8: note: identical inner condition: m->func joe-4.6/joe/menu.c:580:8: warning: Identical inner 'if' condition is always true. [identicalInnerCondition] joe-4.6/joe/menu.c:579:19: note: outer condition: m->func joe-4.6/joe/menu.c:580:8: note: identical inner condition: m->func joe-4.6/joe/menu.c:545:23: style:inconclusive: Function 'umbacks' argument 2 names different: declaration 'k' definition 'c'. [funcArgNamesDifferent] joe-4.6/joe/menu.h:50:23: note: Function 'umbacks' argument 2 names different: declaration 'k' definition 'c'. joe-4.6/joe/menu.c:545:23: note: Function 'umbacks' argument 2 names different: declaration 'k' definition 'c'. joe-4.6/joe/menu.c:645:17: style:inconclusive: Function 'mkmenu' argument 1 names different: declaration 'loc' definition 'w'. [funcArgNamesDifferent] joe-4.6/joe/menu.h:30:17: note: Function 'mkmenu' argument 1 names different: declaration 'loc' definition 'w'. joe-4.6/joe/menu.c:645:17: note: Function 'mkmenu' argument 1 names different: declaration 'loc' definition 'w'. joe-4.6/joe/mmenu.c:17:40: style: Parameter 's' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/mmenu.c:46:49: style: Parameter 'entry_name' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/menu.c:686:34: style: Parameter 'b' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/main.c:471:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] joe-4.6/joe/main.c:254:25: style: Parameter 's' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/main.c:219:14: style: Variable 'auto_off' is assigned a value that is never used. [unreadVariable] joe-4.6/joe/main.c:224:14: style: Variable 'word_off' is assigned a value that is never used. [unreadVariable] joe-4.6/joe/main.c:229:16: style: Variable 'spaces_off' is assigned a value that is never used. [unreadVariable] joe-4.6/joe/path.c:223:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDONLY [valueFlowBailoutIncompleteVar] joe-4.6/joe/options.c:1009:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable JOEDATA [valueFlowBailoutIncompleteVar] joe-4.6/joe/path.c:345:16: portability: Non reentrant function 'readdir' called. For threadsafe applications it is recommended to use the reentrant replacement function 'readdir_r'. [prohibitedreaddirCalled] joe-4.6/joe/path.c:362:16: portability: Non reentrant function 'readdir' called. For threadsafe applications it is recommended to use the reentrant replacement function 'readdir_r'. [prohibitedreaddirCalled] joe-4.6/joe/path.c:385:19: portability: Non reentrant function 'readdir' called. For threadsafe applications it is recommended to use the reentrant replacement function 'readdir_r'. [prohibitedreaddirCalled] joe-4.6/joe/path.c:405:12: portability: Non reentrant function 'getpwent' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwent_r'. [prohibitedgetpwentCalled] joe-4.6/joe/path.c:456:8: style: Obsolescent function 'getwd' called. It is recommended to use 'getcwd' instead. [prohibitedgetwdCalled] joe-4.6/joe/path.c:466:35: style:inconclusive: Function 'simplify_prefix' argument 1 names different: declaration 'path' definition 's'. [funcArgNamesDifferent] joe-4.6/joe/path.h:101:35: note: Function 'simplify_prefix' argument 1 names different: declaration 'path' definition 's'. joe-4.6/joe/path.c:466:35: note: Function 'simplify_prefix' argument 1 names different: declaration 'path' definition 's'. joe-4.6/joe/path.c:495:23: style:inconclusive: Function 'dequotevs' argument 1 names different: declaration 'path' definition 's'. [funcArgNamesDifferent] joe-4.6/joe/path.h:103:23: note: Function 'dequotevs' argument 1 names different: declaration 'path' definition 's'. joe-4.6/joe/path.c:495:23: note: Function 'dequotevs' argument 1 names different: declaration 'path' definition 's'. joe-4.6/joe/path.c:342:17: style: Variable 'de' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/path.c:359:17: style: Variable 'de' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/path.c:373:8: style: Variable 'raw_path' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/path.c:375:17: style: Variable 'de' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/path.c:403:17: style: Variable 'pw' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/poshist.c:58:16: style: Parameter 'w' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/mouse.c:65:27: style: Parameter 'w' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/mouse.c:190:21: style: Parameter 'xx' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/mouse.c:435:7: style: Variable 'pw' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/mouse.c:531:7: style: Variable 'pw' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/pw.c:30:6: warning: Either the condition 's' is redundant or there is possible null pointer dereference: s. [nullPointerRedundantCheck] joe-4.6/joe/pw.c:33:6: note: Assuming that condition 's' is not redundant joe-4.6/joe/pw.c:30:6: note: Null pointer dereference joe-4.6/joe/pw.c:363:41: style:inconclusive: Function 'cmplt_abrt' argument 3 names different: declaration 'obj' definition 'object'. [funcArgNamesDifferent] joe-4.6/joe/pw.h:50:39: note: Function 'cmplt_abrt' argument 3 names different: declaration 'obj' definition 'object'. joe-4.6/joe/pw.c:363:41: note: Function 'cmplt_abrt' argument 3 names different: declaration 'obj' definition 'object'. joe-4.6/joe/pw.c:373:43: style:inconclusive: Function 'cmplt_rtn' argument 3 names different: declaration 'obj' definition 'object'. [funcArgNamesDifferent] joe-4.6/joe/pw.h:52:41: note: Function 'cmplt_rtn' argument 3 names different: declaration 'obj' definition 'object'. joe-4.6/joe/pw.c:373:43: note: Function 'cmplt_rtn' argument 3 names different: declaration 'obj' definition 'object'. joe-4.6/joe/pw.c:23:36: style: Parameter 's' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/pw.c:102:35: style: Parameter 's' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/pw.c:202:28: style: Parameter 'b' can be declared as pointer to const. However it seems that 'inspw' is a callback function, if 'b' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/pw.c:245:2: note: You might need to cast the function pointer here joe-4.6/joe/pw.c:202:28: note: Parameter 'b' can be declared as pointer to const joe-4.6/joe/pw.c:210:28: style: Parameter 'b' can be declared as pointer to const. However it seems that 'delpw' is a callback function, if 'b' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/pw.c:246:2: note: You might need to cast the function pointer here joe-4.6/joe/pw.c:210:28: note: Parameter 'b' can be declared as pointer to const joe-4.6/joe/pw.c:309:46: style: Parameter 's' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/queue.c:20:12: style: Variable 'z' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/rc.c:250:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable JOERC [valueFlowBailoutIncompleteVar] joe-4.6/joe/rc.c:53:98: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/rc.c:242:14: style: Variable 'p' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/options.c:617:8: style: The if condition is the same as the previous if condition [duplicateCondition] joe-4.6/joe/options.c:609:8: note: First condition joe-4.6/joe/options.c:617:8: note: Second condition joe-4.6/joe/options.c:631:8: style: The if condition is the same as the previous if condition [duplicateCondition] joe-4.6/joe/options.c:623:8: note: First condition joe-4.6/joe/options.c:631:8: note: Second condition joe-4.6/joe/options.c:673:8: style: The if condition is the same as the previous if condition [duplicateCondition] joe-4.6/joe/options.c:664:8: note: First condition joe-4.6/joe/options.c:673:8: note: Second condition joe-4.6/joe/options.c:243:31: style:inconclusive: Function 'setopt' argument 2 names different: declaration 'name' definition 'parsed_name'. [funcArgNamesDifferent] joe-4.6/joe/options.h:16:31: note: Function 'setopt' argument 2 names different: declaration 'name' definition 'parsed_name'. joe-4.6/joe/options.c:243:31: note: Function 'setopt' argument 2 names different: declaration 'name' definition 'parsed_name'. joe-4.6/joe/options.c:638:14: style: Variable 'o' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/options.c:997:8: style: Variable 'oldpwd' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/options.c:999:8: style: Variable 'p' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/options.c:1095:30: style: Parameter 'bw' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/options.c:1097:5: style: Variable 'w' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/options.c:1151:30: style: Parameter 's' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/scrn.c:514:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ss [valueFlowBailoutIncompleteVar] joe-4.6/joe/scrn.c:877:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/state.c:68:20: style: The statement 'if (bf[len-1]!='\n') bf[len-1]='\n'' is logically equivalent to 'bf[len-1]='\n''. [duplicateConditionalAssign] joe-4.6/joe/state.c:69:17: note: Assignment 'bf[len-1]='\n'' joe-4.6/joe/state.c:68:20: note: Condition 'bf[len-1]!='\n'' is redundant joe-4.6/joe/state.c:84:8: style: Variable 'home' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/state.c:122:8: style: Variable 'home' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/state.c:19:16: style: Variable 'len' is assigned a value that is never used. [unreadVariable] joe-4.6/joe/syntax.c:742:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable JOEDATA [valueFlowBailoutIncompleteVar] joe-4.6/joe/b.c:2586:14: portability: Non reentrant function 'getpwnam' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwnam_r'. [prohibitedgetpwnamCalled] joe-4.6/joe/b.c:2678:7: style: Obsolescent function 'vfork' called. It is recommended to use 'fork' instead. [prohibitedvforkCalled] joe-4.6/joe/b.c:1531:14: style: Condition 'p->ofst>=n' is always true [knownConditionTrueFalse] joe-4.6/joe/b.c:1526:11: note: Assuming that condition 'n>p->ofst' is not redundant joe-4.6/joe/b.c:1531:14: note: Condition 'p->ofst>=n' is always true joe-4.6/joe/b.c:516:8: error: Expression 'ITEM=(void*)(p),((struct P*)ITEM)->link.prev->link.next=((struct P*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] joe-4.6/joe/b.c:1771:9: error: Expression 'ITEM=(void*)(hdr),((struct H*)ITEM)->link.prev->link.next=((struct H*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] joe-4.6/joe/b.c:1792:9: error: Expression 'ITEM=(void*)(hdr),((struct H*)ITEM)->link.prev->link.next=((struct H*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] joe-4.6/joe/b.c:1941:9: error: Expression 'ITEM=(void*)(from->hdr),((struct H*)ITEM)->link.prev->link.next=((struct H*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] joe-4.6/joe/b.c:2554:23: style:inconclusive: Function 'canonical' argument 1 names different: declaration 's' definition 'n'. [funcArgNamesDifferent] joe-4.6/joe/b.h:287:23: note: Function 'canonical' argument 1 names different: declaration 's' definition 'n'. joe-4.6/joe/b.c:2554:23: note: Function 'canonical' argument 1 names different: declaration 's' definition 'n'. joe-4.6/joe/b.c:3161:29: style:inconclusive: Function 'bsave' argument 2 names different: declaration 's' definition 'as'. [funcArgNamesDifferent] joe-4.6/joe/b.h:282:29: note: Function 'bsave' argument 2 names different: declaration 's' definition 'as'. joe-4.6/joe/b.c:3161:29: note: Function 'bsave' argument 2 names different: declaration 's' definition 'as'. joe-4.6/joe/b.c:3454:25: style:inconclusive: Function 'lock_it' argument 1 names different: declaration 'path' definition 'qpath'. [funcArgNamesDifferent] joe-4.6/joe/b.h:319:25: note: Function 'lock_it' argument 1 names different: declaration 'path' definition 'qpath'. joe-4.6/joe/b.c:3454:25: note: Function 'lock_it' argument 1 names different: declaration 'path' definition 'qpath'. joe-4.6/joe/b.c:3454:37: style:inconclusive: Function 'lock_it' argument 2 names different: declaration 'buf' definition 'bf'. [funcArgNamesDifferent] joe-4.6/joe/b.h:319:36: note: Function 'lock_it' argument 2 names different: declaration 'buf' definition 'bf'. joe-4.6/joe/b.c:3454:37: note: Function 'lock_it' argument 2 names different: declaration 'buf' definition 'bf'. joe-4.6/joe/b.c:3483:28: style:inconclusive: Function 'unlock_it' argument 1 names different: declaration 'path' definition 'qpath'. [funcArgNamesDifferent] joe-4.6/joe/b.h:320:28: note: Function 'unlock_it' argument 1 names different: declaration 'path' definition 'qpath'. joe-4.6/joe/b.c:3483:28: note: Function 'unlock_it' argument 1 names different: declaration 'path' definition 'qpath'. joe-4.6/joe/b.c:89:22: style: Parameter 'hdr' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/b.c:152:5: style: Variable 'b' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/b.c:163:5: style: Variable 'first' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/b.c:175:5: style: Variable 'b' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/b.c:176:5: style: Variable 'p' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/b.c:227:29: style: Parameter 'prop' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/b.c:769:21: style: Parameter 's' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/b.c:1476:26: style: Parameter 'q' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/b.c:1642:27: style: Parameter 'q' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/b.c:2125:57: style: Parameter 'hdr' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/b.c:2272:9: style: Variable 's' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/b.c:2319:41: style: Parameter 'inbuf' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/b.c:2340:42: style: Parameter 'inbuf' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/b.c:2559:8: style: Variable 's' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/b.c:2583:20: style: Variable 'passwd' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/b.c:3048:5: style: Variable 'b' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/b.c:3456:15: style: Variable 'path' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/b.c:3485:15: style: Variable 'path' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/b.c:3497:19: style: Parameter 'b' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/tab.c:51:8: style: Variable 'oldpwd' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/termcap.c:198:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable JOERC [valueFlowBailoutIncompleteVar] joe-4.6/joe/termcap.c:55:46: style: Condition 's[x]' is always true [knownConditionTrueFalse] joe-4.6/joe/termcap.c:178:71: style: Argument '((ptrdiff_t)sizeof(struct sortentry))*(sortsiz=64)' to function joe_malloc is always 1024. It does not matter what value 'sortsiz' has. [knownArgument] joe-4.6/joe/termcap.c:156:8: style: Variable 'tp' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/termcap.c:367:39: style: Parameter 'cap' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/termcap.c:428:20: style: Variable 's' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/termcap.c:682:23: style: Parameter 'ptr' can be declared as pointer to const. However it seems that 'cst' is a callback function, if 'ptr' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/termcap.c:694:13: note: You might need to cast the function pointer here joe-4.6/joe/termcap.c:682:23: note: Parameter 'ptr' can be declared as pointer to const joe-4.6/joe/tty.c:227:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIG_IGN [valueFlowBailoutIncompleteVar] joe-4.6/joe/tty.c:237:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIG_DFL [valueFlowBailoutIncompleteVar] joe-4.6/joe/tty.c:339:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] joe-4.6/joe/tty.c:456:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TIOCSETN [valueFlowBailoutIncompleteVar] joe-4.6/joe/tty.c:542:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable F_SETFL [valueFlowBailoutIncompleteVar] joe-4.6/joe/tty.c:817:84: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/tty.c:862:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] joe-4.6/joe/tty.c:883:82: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/tty.c:1020:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] joe-4.6/joe/tty.c:1195:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] joe-4.6/joe/tty.c:1337:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] joe-4.6/joe/tty.c:805:11: style: Obsolescent function 'vfork' called. It is recommended to use 'fork' instead. [prohibitedvforkCalled] joe-4.6/joe/tty.c:998:8: style: Variable 'orgpwd' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/tty.c:1000:15: style: Variable 'ttydir' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/tty.c:1001:15: style: Variable 'ptydir' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/tty.c:1103:8: style: Variable 'name' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/tty.c:569:13: style: Variable 'usec' is assigned a value that is never used. [unreadVariable] joe-4.6/joe/tw.c:223:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable VERSION [valueFlowBailoutIncompleteVar] joe-4.6/joe/syntax.c:922:20: style: Boolean result is used in bitwise operation. Clarify expression with parentheses. [clarifyCondition] joe-4.6/joe/syntax.c:154:74: style:inconclusive: Function 'parse' argument 3 names different: declaration 'state' definition 'h_state'. [funcArgNamesDifferent] joe-4.6/joe/syntax.h:83:74: note: Function 'parse' argument 3 names different: declaration 'state' definition 'h_state'. joe-4.6/joe/syntax.c:154:74: note: Function 'parse' argument 3 names different: declaration 'state' definition 'h_state'. joe-4.6/joe/syntax.c:955:79: style: Argument '((ptrdiff_t)sizeof(struct high_state*))*(syntax->szstates=64)' to function joe_malloc is always 512. It does not matter what value 'syntax->szstates' has. [knownArgument] joe-4.6/joe/syntax.c:37:7: style: Variable 'attr_end' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/syntax.c:165:7: style: Variable 'attr_end' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/syntax.c:389:71: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/syntax.c:419:45: style: Parameter 'syntax' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/syntax.c:460:68: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/syntax.c:460:79: style: Parameter 'syn' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/syntax.c:530:23: style: Variable 's' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/syntax.c:547:97: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/syntax.c:936:61: style: Parameter 'subr' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/syntax.c:551:21: style: Variable 'params' is not assigned a value. [unassignedVariable] joe-4.6/joe/syntax.c:757:5: style: Variable 'c' is assigned a value that is never used. [unreadVariable] joe-4.6/joe/tw.c:83:26: style: Array index 'i' is used before limits check. [arrayIndexThenCheck] joe-4.6/joe/tw.c:209:6: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] joe-4.6/joe/tw.c:208:13: style: Variable 'cas' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/tw.c:254:12: style: Variable 'd' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/tw.c:285:12: style: Variable 'ch' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/tw.c:316:12: style: Variable 'd' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/tw.c:693:28: style: Parameter 'b' can be declared as pointer to const. However it seems that 'instw' is a callback function, if 'b' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/tw.c:716:2: note: You might need to cast the function pointer here joe-4.6/joe/tw.c:693:28: note: Parameter 'b' can be declared as pointer to const joe-4.6/joe/tw.c:700:28: style: Parameter 'b' can be declared as pointer to const. However it seems that 'deltw' is a callback function, if 'b' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/tw.c:717:2: note: You might need to cast the function pointer here joe-4.6/joe/tw.c:700:28: note: Parameter 'b' can be declared as pointer to const joe-4.6/joe/regex.c:323:14: style: Condition 'g->l' is always true [knownConditionTrueFalse] joe-4.6/joe/regex.c:1286:9: style: Variable 'c' is reassigned a value before the old one has been used. [redundantAssignment] joe-4.6/joe/regex.c:1282:4: note: c is assigned joe-4.6/joe/regex.c:1286:9: note: c is overwritten joe-4.6/joe/regex.c:16:35: style:inconclusive: Function 'escape' argument 2 names different: declaration 'ptr' definition 'a'. [funcArgNamesDifferent] joe-4.6/joe/regex.h:12:35: note: Function 'escape' argument 2 names different: declaration 'ptr' definition 'a'. joe-4.6/joe/regex.c:16:35: note: Function 'escape' argument 2 names different: declaration 'ptr' definition 'a'. joe-4.6/joe/regex.c:16:49: style:inconclusive: Function 'escape' argument 3 names different: declaration 'len' definition 'b'. [funcArgNamesDifferent] joe-4.6/joe/regex.h:12:51: note: Function 'escape' argument 3 names different: declaration 'len' definition 'b'. joe-4.6/joe/regex.c:16:49: note: Function 'escape' argument 3 names different: declaration 'len' definition 'b'. joe-4.6/joe/regex.c:977:45: style:inconclusive: Function 'joe_regcomp' argument 1 names different: declaration 'charmap' definition 'cmap'. [funcArgNamesDifferent] joe-4.6/joe/regex.h:86:45: note: Function 'joe_regcomp' argument 1 names different: declaration 'charmap' definition 'cmap'. joe-4.6/joe/regex.c:977:45: note: Function 'joe_regcomp' argument 1 names different: declaration 'charmap' definition 'cmap'. joe-4.6/joe/regex.c:977:85: style:inconclusive: Function 'joe_regcomp' argument 4 names different: declaration 'icase' definition 'fold'. [funcArgNamesDifferent] joe-4.6/joe/regex.h:86:88: note: Function 'joe_regcomp' argument 4 names different: declaration 'icase' definition 'fold'. joe-4.6/joe/regex.c:977:85: note: Function 'joe_regcomp' argument 4 names different: declaration 'icase' definition 'fold'. joe-4.6/joe/regex.c:1069:34: style:inconclusive: Function 'joe_regfree' argument 1 names different: declaration 'r' definition 'g'. [funcArgNamesDifferent] joe-4.6/joe/regex.h:88:34: note: Function 'joe_regfree' argument 1 names different: declaration 'r' definition 'g'. joe-4.6/joe/regex.c:1069:34: note: Function 'joe_regfree' argument 1 names different: declaration 'r' definition 'g'. joe-4.6/joe/regex.c:1255:33: style:inconclusive: Function 'joe_regexec' argument 1 names different: declaration 'r' definition 'g'. [funcArgNamesDifferent] joe-4.6/joe/regex.h:94:33: note: Function 'joe_regexec' argument 1 names different: declaration 'r' definition 'g'. joe-4.6/joe/regex.c:1255:33: note: Function 'joe_regexec' argument 1 names different: declaration 'r' definition 'g'. joe-4.6/joe/regex.c:1255:79: style:inconclusive: Function 'joe_regexec' argument 5 names different: declaration 'eflags' definition 'fold'. [funcArgNamesDifferent] joe-4.6/joe/regex.h:94:84: note: Function 'joe_regexec' argument 5 names different: declaration 'eflags' definition 'fold'. joe-4.6/joe/regex.c:1255:79: note: Function 'joe_regexec' argument 5 names different: declaration 'eflags' definition 'fold'. joe-4.6/joe/regex.c:1138:31: style: Parameter 'a' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/regex.c:1138:46: style: Parameter 'b' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/regex.c:1154:112: style: Parameter 'pos' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/regex.c:1154:134: style: Parameter 'stack' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/regex.c:1218:113: style: Parameter 'pos' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/regex.c:1218:135: style: Parameter 'stack' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/uerror.c:141:11: error: Expression 'ITEM=(void*)(errors.link.next),((struct ERROR*)ITEM)->link.prev->link.next=((struct ERROR*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] joe-4.6/joe/uerror.c:381:30: style: Parameter 'b' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/uerror.c:471:65: style: Parameter 'msg' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/uerror.c:506:36: style: Parameter 'file' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/uerror.c:587:11: style: Variable 'er' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/ufile.c:132:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDONLY [valueFlowBailoutIncompleteVar] joe-4.6/joe/ufile.c:489:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDONLY [valueFlowBailoutIncompleteVar] joe-4.6/joe/ublock.c:980:7: style: Obsolescent function 'vfork' called. It is recommended to use 'fork' instead. [prohibitedvforkCalled] joe-4.6/joe/ublock.c:1015:6: style: Obsolescent function 'vfork' called. It is recommended to use 'fork' instead. [prohibitedvforkCalled] joe-4.6/joe/ublock.c:450:6: style: Variable 'bw' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/uformat.c:785:6: style: Variable 'bw' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/ufile.c:137:3: error: Resource leak: f [resourceLeak] joe-4.6/joe/ufile.c:279:25: style:inconclusive: Function 'yncheck' argument 1 names different: declaration 'string' definition 'key_set'. [funcArgNamesDifferent] joe-4.6/joe/ufile.h:46:25: note: Function 'yncheck' argument 1 names different: declaration 'string' definition 'key_set'. joe-4.6/joe/ufile.c:279:25: note: Function 'yncheck' argument 1 names different: declaration 'string' definition 'key_set'. joe-4.6/joe/ufile.c:27:40: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/ufile.c:118:21: style: Parameter 'from' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/ufile.c:118:33: style: Parameter 'to' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/ufile.c:368:19: style: Variable 'rec_start' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/ufile.c:535:6: style: Variable 'bw' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/ufile.c:696:5: style: Variable 'b' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/ufile.c:1287:8: style: Variable 'pbw' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/uisrch.c:129:11: error: Expression 'ITEM=(void*)(i),((struct IREC*)ITEM)->link.prev->link.next=((struct IREC*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] joe-4.6/joe/uisrch.c:62:56: style: Parameter 's' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/undo.c:160:9: error: Expression 'ITEM=(void*)(ptr),((struct UNDOREC*)ITEM)->link.prev->link.next=((struct UNDOREC*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] joe-4.6/joe/undo.c:191:10: error: Expression 'ITEM=(void*)(undo->recs.link.next),((struct UNDOREC*)ITEM)->link.prev->link.next=((struct UNDOREC*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] joe-4.6/joe/undo.c:195:8: error: Expression 'ITEM=(void*)(undo->recs.link.next),((struct UNDOREC*)ITEM)->link.prev->link.next=((struct UNDOREC*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] joe-4.6/joe/undo.c:312:11: error: Expression 'ITEM=(void*)(yanked.link.next),((struct UNDOREC*)ITEM)->link.prev->link.next=((struct UNDOREC*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] joe-4.6/joe/undo.c:514:11: error: Expression 'ITEM=(void*)(yanked.link.next),((struct UNDOREC*)ITEM)->link.prev->link.next=((struct UNDOREC*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] joe-4.6/joe/undo.c:107:11: style: Variable 'upto' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/undo.c:141:11: style: Variable 'upto' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/undo.c:184:11: style: Variable 'unit' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/undo.c:229:29: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/undo.c:489:11: style: Variable 'rec' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/unicode.c:20:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/unicode.c:52:36: style:inconclusive: Function 'unicode' argument 1 names different: declaration 'name' definition 'cat'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:26:36: note: Function 'unicode' argument 1 names different: declaration 'name' definition 'cat'. joe-4.6/joe/unicode.c:52:36: note: Function 'unicode' argument 1 names different: declaration 'name' definition 'cat'. joe-4.6/joe/unicode.c:81:43: style:inconclusive: Function 'joe_iswupper' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:52:39: note: Function 'joe_iswupper' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:81:43: note: Function 'joe_iswupper' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:84:43: style:inconclusive: Function 'joe_iswlower' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:53:39: note: Function 'joe_iswlower' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:84:43: note: Function 'joe_iswlower' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:87:43: style:inconclusive: Function 'joe_iswalpha' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:55:39: note: Function 'joe_iswalpha' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:87:43: note: Function 'joe_iswalpha' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:91:44: style:inconclusive: Function 'joe_iswalpha_' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:56:40: note: Function 'joe_iswalpha_' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:91:44: note: Function 'joe_iswalpha_' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:94:43: style:inconclusive: Function 'joe_iswalnum' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:58:39: note: Function 'joe_iswalnum' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:94:43: note: Function 'joe_iswalnum' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:98:44: style:inconclusive: Function 'joe_iswalnum_' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:59:40: note: Function 'joe_iswalnum_' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:98:44: note: Function 'joe_iswalnum_' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:101:43: style:inconclusive: Function 'joe_iswdigit' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:61:39: note: Function 'joe_iswdigit' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:101:43: note: Function 'joe_iswdigit' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:106:44: style:inconclusive: Function 'joe_iswxdigit' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:67:40: note: Function 'joe_iswxdigit' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:106:44: note: Function 'joe_iswxdigit' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:109:43: style:inconclusive: Function 'joe_iswpunct' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:64:39: note: Function 'joe_iswpunct' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:109:43: note: Function 'joe_iswpunct' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:112:43: style:inconclusive: Function 'joe_iswspace' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:62:39: note: Function 'joe_iswspace' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:112:43: note: Function 'joe_iswspace' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:117:43: style:inconclusive: Function 'joe_iswblank' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:68:39: note: Function 'joe_iswblank' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:117:43: note: Function 'joe_iswblank' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:120:42: style:inconclusive: Function 'joe_iswctrl' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:63:38: note: Function 'joe_iswctrl' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:120:42: note: Function 'joe_iswctrl' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:123:43: style:inconclusive: Function 'joe_iswgraph' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:65:39: note: Function 'joe_iswgraph' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:123:43: note: Function 'joe_iswgraph' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:126:43: style:inconclusive: Function 'joe_iswprint' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:66:39: note: Function 'joe_iswprint' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:126:43: note: Function 'joe_iswprint' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:132:43: style:inconclusive: Function 'joe_towlower' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:78:39: note: Function 'joe_towlower' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:132:43: note: Function 'joe_towlower' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:138:43: style:inconclusive: Function 'joe_towupper' argument 2 names different: declaration 'c' definition 'ch'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:77:39: note: Function 'joe_towupper' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:138:43: note: Function 'joe_towupper' argument 2 names different: declaration 'c' definition 'ch'. joe-4.6/joe/unicode.c:512:30: style:inconclusive: Function 'joe_wcwidth' argument 2 names different: declaration 'c' definition 'ucs'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:73:30: note: Function 'joe_wcwidth' argument 2 names different: declaration 'c' definition 'ucs'. joe-4.6/joe/unicode.c:512:30: note: Function 'joe_wcwidth' argument 2 names different: declaration 'c' definition 'ucs'. joe-4.6/joe/unicode.c:583:17: style:inconclusive: Function 'unictrl' argument 1 names different: declaration 'c' definition 'ucs'. [funcArgNamesDifferent] joe-4.6/joe/unicode.h:80:17: note: Function 'unictrl' argument 1 names different: declaration 'c' definition 'ucs'. joe-4.6/joe/unicode.c:583:17: note: Function 'unictrl' argument 1 names different: declaration 'c' definition 'ucs'. joe-4.6/joe/unicode.c:561:40: style: Parameter 'map' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/usearch.c:685:2: style:inconclusive: Found duplicate branches for 'if' and 'else'. [duplicateBranch] joe-4.6/joe/usearch.c:687:2: note: Found duplicate branches for 'if' and 'else'. joe-4.6/joe/usearch.c:685:2: note: Found duplicate branches for 'if' and 'else'. joe-4.6/joe/usearch.c:35:31: style:inconclusive: Function 'setpat' argument 2 names different: declaration 'pattern' definition 's'. [funcArgNamesDifferent] joe-4.6/joe/usearch.h:53:31: note: Function 'setpat' argument 2 names different: declaration 'pattern' definition 's'. joe-4.6/joe/usearch.c:35:31: note: Function 'setpat' argument 2 names different: declaration 'pattern' definition 's'. joe-4.6/joe/usearch.c:485:24: style: Parameter 'srch' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/usearch.c:844:47: style: Parameter 'hint' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/usearch.c:931:15: style: Variable 'm' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/usearch.c:1059:44: style: Parameter 'srch' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/usearch.c:1103:5: style: Variable 'sta' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/umath.c:1539:25: warning: Either the condition 'len' is redundant or the array 'buf[128]' is accessed at index -2, which is out of bounds. [negativeIndex] joe-4.6/joe/umath.c:1537:9: note: Assuming that condition 'len' is not redundant joe-4.6/joe/umath.c:1540:15: note: len is decremented', new value is -1 joe-4.6/joe/umath.c:1539:25: note: Negative array index joe-4.6/joe/umath.c:1571:25: warning: Either the condition 'len' is redundant or the array 'buf[128]' is accessed at index -2, which is out of bounds. [negativeIndex] joe-4.6/joe/umath.c:1569:9: note: Assuming that condition 'len' is not redundant joe-4.6/joe/umath.c:1572:15: note: len is decremented', new value is -1 joe-4.6/joe/umath.c:1571:25: note: Negative array index joe-4.6/joe/umath.c:1603:25: warning: Either the condition 'len' is redundant or the array 'buf[128]' is accessed at index -2, which is out of bounds. [negativeIndex] joe-4.6/joe/umath.c:1601:9: note: Assuming that condition 'len' is not redundant joe-4.6/joe/umath.c:1604:15: note: len is decremented', new value is -1 joe-4.6/joe/umath.c:1603:25: note: Negative array index joe-4.6/joe/ushell.c:252:31: error: There is an unknown macro here somewhere. Configuration is required. If JOERC is a macro then please configure it. [unknownMacro] joe-4.6/joe/umath.c:63:31: style:inconclusive: Function 'joe_strtod' argument 1 names different: declaration 'ptr' definition 'bptr'. [funcArgNamesDifferent] joe-4.6/joe/umath.h:12:31: note: Function 'joe_strtod' argument 1 names different: declaration 'ptr' definition 'bptr'. joe-4.6/joe/umath.c:63:31: note: Function 'joe_strtod' argument 1 names different: declaration 'ptr' definition 'bptr'. joe-4.6/joe/umath.c:1250:27: style: Parameter 's' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/utf8.c:205:28: style: Parameter 'map' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/util/checkwidths.c:70:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] joe-4.6/joe/util/checkwidths.c:117:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] joe-4.6/joe/util/stringify.c:32:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/util/stringify.c:110:22: style: Variable 'instring' is assigned a value that is never used. [unreadVariable] joe-4.6/joe/util/termidx.c:46:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] joe-4.6/joe/util/termidx.c:67:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] joe-4.6/joe/util/uniproc.c:79:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/util/uniproc.c:225:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/util/uniproc.c:372:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/util/uniproc.c:698:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/util/uniproc.c:740:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/util/uniproc.c:785:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/utag.c:204:7: style: Condition 'f' is always true [knownConditionTrueFalse] joe-4.6/joe/utag.c:208:33: warning: Either the condition 'f' is redundant or there is possible null pointer dereference: f. [nullPointerRedundantCheck] joe-4.6/joe/utag.c:204:7: note: Assuming that condition 'f' is not redundant joe-4.6/joe/utag.c:208:33: note: Null pointer dereference joe-4.6/joe/utag.c:39:11: error: Expression 'ITEM=(void*)(tags.link.next),((struct TAG*)ITEM)->link.prev->link.next=((struct TAG*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] joe-4.6/joe/utils.c:65:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] joe-4.6/joe/utils.c:75:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] joe-4.6/joe/utils.c:84:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] joe-4.6/joe/utils.c:331:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/utils.c:496:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/utils.c:514:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/utils.c:532:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] joe-4.6/joe/util/uniproc.c:387:18: warning: %x in format string (no. 1) requires 'unsigned int *' but the argument type is 'signed int *'. [invalidScanfArgType_int] joe-4.6/joe/util/uniproc.c:427:18: warning: %x in format string (no. 1) requires 'unsigned int *' but the argument type is 'signed int *'. [invalidScanfArgType_int] joe-4.6/joe/util/uniproc.c:432:18: warning: %x in format string (no. 1) requires 'unsigned int *' but the argument type is 'signed int *'. [invalidScanfArgType_int] joe-4.6/joe/util/uniproc.c:437:18: warning: %x in format string (no. 1) requires 'unsigned int *' but the argument type is 'signed int *'. [invalidScanfArgType_int] joe-4.6/joe/util/uniproc.c:560:12: style: Variable 'diglow' is reassigned a value before the old one has been used. [redundantAssignment] joe-4.6/joe/util/uniproc.c:532:36: note: diglow is assigned joe-4.6/joe/util/uniproc.c:560:12: note: diglow is overwritten joe-4.6/joe/util/uniproc.c:66:31: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/util/uniproc.c:215:33: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/util/uniproc.c:363:38: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/util/uniproc.c:469:33: style: Parameter 's' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/util/uniproc.c:689:28: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/util/uniproc.c:732:27: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/utils.c:59:49: style:inconclusive: Function 'joe_read' argument 3 names different: declaration 'siz' definition 'size'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:127:49: note: Function 'joe_read' argument 3 names different: declaration 'siz' definition 'size'. joe-4.6/joe/utils.c:59:49: note: Function 'joe_read' argument 3 names different: declaration 'siz' definition 'size'. joe-4.6/joe/utils.c:69:56: style:inconclusive: Function 'joe_write' argument 3 names different: declaration 'siz' definition 'size'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:128:56: note: Function 'joe_write' argument 3 names different: declaration 'siz' definition 'size'. joe-4.6/joe/utils.c:69:56: note: Function 'joe_write' argument 3 names different: declaration 'siz' definition 'size'. joe-4.6/joe/utils.c:327:32: style:inconclusive: Function 'zlcpy' argument 2 names different: declaration 'siz' definition 'len'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:100:32: note: Function 'zlcpy' argument 2 names different: declaration 'siz' definition 'len'. joe-4.6/joe/utils.c:327:32: note: Function 'zlcpy' argument 2 names different: declaration 'siz' definition 'len'. joe-4.6/joe/utils.c:492:30: style:inconclusive: Function 'Zlcpy' argument 2 names different: declaration 'siz' definition 'len'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:109:30: note: Function 'Zlcpy' argument 2 names different: declaration 'siz' definition 'len'. joe-4.6/joe/utils.c:492:30: note: Function 'Zlcpy' argument 2 names different: declaration 'siz' definition 'len'. joe-4.6/joe/utils.c:572:22: style:inconclusive: Function 'Zdup' argument 1 names different: declaration 's' definition 'bf'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:110:22: note: Function 'Zdup' argument 1 names different: declaration 's' definition 'bf'. joe-4.6/joe/utils.c:572:22: note: Function 'Zdup' argument 1 names different: declaration 's' definition 'bf'. joe-4.6/joe/utils.c:619:27: style:inconclusive: Function 'parse_ws' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:152:28: note: Function 'parse_ws' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:619:27: note: Function 'parse_ws' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:636:28: style:inconclusive: Function 'parse_wsn' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:153:29: note: Function 'parse_wsn' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:636:28: note: Function 'parse_wsn' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:651:28: style:inconclusive: Function 'parse_wsl' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:154:29: note: Function 'parse_wsl' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:651:28: note: Function 'parse_wsl' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:670:31: style:inconclusive: Function 'parse_ident' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:155:30: note: Function 'parse_ident' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:670:31: note: Function 'parse_ident' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:699:30: style:inconclusive: Function 'parse_tows' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:157:29: note: Function 'parse_tows' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:699:30: note: Function 'parse_tows' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:712:28: style:inconclusive: Function 'parse_kw' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:156:27: note: Function 'parse_kw' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:712:28: note: Function 'parse_kw' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:726:30: style:inconclusive: Function 'parse_field' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:158:30: note: Function 'parse_field' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:726:30: note: Function 'parse_field' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:726:46: style:inconclusive: Function 'parse_field' argument 2 names different: declaration 'field' definition 'kw'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:158:44: note: Function 'parse_field' argument 2 names different: declaration 'field' definition 'kw'. joe-4.6/joe/utils.c:726:46: note: Function 'parse_field' argument 2 names different: declaration 'field' definition 'kw'. joe-4.6/joe/utils.c:740:29: style:inconclusive: Function 'parse_char' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:159:29: note: Function 'parse_char' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:740:29: note: Function 'parse_char' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:752:28: style:inconclusive: Function 'parse_int' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:160:28: note: Function 'parse_int' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:752:28: note: Function 'parse_int' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:767:29: style:inconclusive: Function 'parse_diff' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:161:29: note: Function 'parse_diff' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:767:29: note: Function 'parse_diff' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:784:31: style:inconclusive: Function 'parse_off_t' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:162:30: note: Function 'parse_off_t' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:784:31: note: Function 'parse_off_t' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:822:37: style:inconclusive: Function 'parse_string' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:171:37: note: Function 'parse_string' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:822:37: note: Function 'parse_string' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:845:38: style:inconclusive: Function 'parse_Zstring' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:172:38: note: Function 'parse_Zstring' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:845:38: note: Function 'parse_Zstring' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:913:31: style:inconclusive: Function 'parse_range' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:173:30: note: Function 'parse_range' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:913:31: note: Function 'parse_range' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:951:31: style:inconclusive: Function 'parse_class' argument 1 names different: declaration 'p' definition 'pp'. [funcArgNamesDifferent] joe-4.6/joe/utils.h:174:30: note: Function 'parse_class' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/utils.c:951:31: note: Function 'parse_class' argument 1 names different: declaration 'p' definition 'pp'. joe-4.6/joe/va.c:174:37: style:inconclusive: Function 'vadel' argument 2 names different: declaration 'ofset' definition 'ofst'. [funcArgNamesDifferent] joe-4.6/joe/va.h:237:37: note: Function 'vadel' argument 2 names different: declaration 'ofset' definition 'ofst'. joe-4.6/joe/va.c:174:37: note: Function 'vadel' argument 2 names different: declaration 'ofset' definition 'ofst'. joe-4.6/joe/vfile.c:43:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] joe-4.6/joe/vfile.c:84:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] joe-4.6/joe/vfile.c:197:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] joe-4.6/joe/vs.c:243:35: style:inconclusive: Function 'vscmpn' argument 2 names different: declaration 'alen' definition 'myalen'. [funcArgNamesDifferent] joe-4.6/joe/vs.h:373:35: note: Function 'vscmpn' argument 2 names different: declaration 'alen' definition 'myalen'. joe-4.6/joe/vs.c:243:35: note: Function 'vscmpn' argument 2 names different: declaration 'alen' definition 'myalen'. joe-4.6/joe/vs.c:318:47: style:inconclusive: Function 'vsscan' argument 2 names different: declaration 'alen' definition 'myalen'. [funcArgNamesDifferent] joe-4.6/joe/vs.h:404:47: note: Function 'vsscan' argument 2 names different: declaration 'alen' definition 'myalen'. joe-4.6/joe/vs.c:318:47: note: Function 'vsscan' argument 2 names different: declaration 'alen' definition 'myalen'. joe-4.6/joe/vs.c:331:47: style:inconclusive: Function 'vsspan' argument 2 names different: declaration 'alen' definition 'myalen'. [funcArgNamesDifferent] joe-4.6/joe/vs.h:410:47: note: Function 'vsspan' argument 2 names different: declaration 'alen' definition 'myalen'. joe-4.6/joe/vs.c:331:47: note: Function 'vsspan' argument 2 names different: declaration 'alen' definition 'myalen'. joe-4.6/joe/vs.c:105:59: style: Parameter 'array' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/vs.c:243:53: style: Parameter 'b' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/vfile.c:46:15: warning: Either the condition 'vfile->fd<0' is redundant or lseek() argument nr 1 can have invalid value. The value is -1 but the valid values are '0:'. [invalidFunctionArg] joe-4.6/joe/vfile.c:44:18: note: Assuming that condition 'vfile->fd<0' is not redundant joe-4.6/joe/vfile.c:46:15: note: Invalid argument joe-4.6/joe/vfile.c:88:14: warning: Either the condition 'vfile->fd<0' is redundant or lseek() argument nr 1 can have invalid value. The value is -1 but the valid values are '0:'. [invalidFunctionArg] joe-4.6/joe/vfile.c:86:17: note: Assuming that condition 'vfile->fd<0' is not redundant joe-4.6/joe/vfile.c:88:14: note: Invalid argument joe-4.6/joe/vfile.c:201:14: warning: Either the condition 'vfile->fd<0' is redundant or lseek() argument nr 1 can have invalid value. The value is -1 but the valid values are '0:'. [invalidFunctionArg] joe-4.6/joe/vfile.c:199:17: note: Assuming that condition 'vfile->fd<0' is not redundant joe-4.6/joe/vfile.c:201:14: note: Invalid argument joe-4.6/joe/vfile.c:284:11: error: Expression 'ITEM=(void*)(vfile),((struct VFILE*)ITEM)->link.prev->link.next=((struct VFILE*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] joe-4.6/joe/vfile.c:140:55: style: Argument '(vheadsz=16)*((ptrdiff_t)sizeof(struct VPAGE*))' to function joe_malloc is always 128. It does not matter what value 'vheadsz' has. [knownArgument] joe-4.6/joe/w.c:72:71: style: Clarify calculation precedence for '%' and '?'. [clarifyCalculation] joe-4.6/joe/w.c:15:5: style: Variable 'm' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/w.c:133:5: style: Variable 'bot' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/w.c:184:8: style: Variable 'scrn' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/w.c:355:8: style: Variable 'l' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/w.c:849:37: style: Parameter 'b' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/vt.c:744:12: style: Expression is always true because 'else if' condition is opposite to previous condition at line 739. [multiCondition] joe-4.6/joe/vt.c:739:11: note: first condition joe-4.6/joe/vt.c:744:12: note: else if condition is opposite to first condition joe-4.6/joe/vt.c:372:30: style: Parameter 'bw' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/vt.c:406:30: style: Parameter 'bw' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/vt.c:475:30: style: Parameter 'bw' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/vt.c:479:32: style: Parameter 'bw' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/vt.c:483:32: style: Parameter 'bw' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/vt.c:176:13: style: Variable 'cur_attr' is assigned a value that is never used. [unreadVariable] joe-4.6/joe/uedit.c:2292:36: portability: Undefined behaviour, when 'c' is 58 the pointer arithmetic 'bw->b->marks+c' is out of bounds. [pointerOutOfBoundsCond] joe-4.6/joe/uedit.c:2294:8: note: Assuming that condition 'c!=':'' is not redundant joe-4.6/joe/uedit.c:2292:36: note: Pointer arithmetic overflow joe-4.6/joe/uedit.c:804:36: style: Parameter 'word' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/uedit.c:855:13: style: Variable 'sod' is assigned a value that is never used. [unreadVariable] joe-4.6/joe/scrn.c:664:6: style: The if condition is the same as the previous if condition [duplicateCondition] joe-4.6/joe/scrn.c:660:6: note: First condition joe-4.6/joe/scrn.c:664:6: note: Second condition joe-4.6/joe/scrn.c:2124:8: style: Condition '*s' is always true [knownConditionTrueFalse] joe-4.6/joe/scrn.c:720:9: style: Variable 's' can be declared as pointer to const [constVariablePointer] joe-4.6/joe/scrn.c:2152:158: style: Parameter 'fmt' can be declared as pointer to const [constParameterPointer] joe-4.6/joe/scrn.c:2248:33: style: Parameter 'map' can be declared as pointer to const [constParameterPointer] diff: head joe-4.6/joe/b.c:1771:9: error: Expression 'ITEM=(void*)(hdr),((struct H*)ITEM)->link.prev->link.next=((struct H*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] 2.13.0 joe-4.6/joe/b.c:1771:9: error: Expression 'ITEM=(void*)(hdr),((struct header*)ITEM)->link.prev->link.next=((struct header*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] head joe-4.6/joe/b.c:1792:9: error: Expression 'ITEM=(void*)(hdr),((struct H*)ITEM)->link.prev->link.next=((struct H*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] 2.13.0 joe-4.6/joe/b.c:1792:9: error: Expression 'ITEM=(void*)(hdr),((struct header*)ITEM)->link.prev->link.next=((struct header*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] head joe-4.6/joe/b.c:1941:9: error: Expression 'ITEM=(void*)(from->hdr),((struct H*)ITEM)->link.prev->link.next=((struct H*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] 2.13.0 joe-4.6/joe/b.c:1941:9: error: Expression 'ITEM=(void*)(from->hdr),((struct header*)ITEM)->link.prev->link.next=((struct header*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] head joe-4.6/joe/b.c:2378:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable seg [valueFlowBailoutIncompleteVar] head joe-4.6/joe/b.c:2778:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOENT [valueFlowBailoutIncompleteVar] head joe-4.6/joe/b.c:3185:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] head joe-4.6/joe/b.c:3386:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] head joe-4.6/joe/b.c:3468:42: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EEXIST [valueFlowBailoutIncompleteVar] head joe-4.6/joe/b.c:516:8: error: Expression 'ITEM=(void*)(p),((struct P*)ITEM)->link.prev->link.next=((struct P*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] 2.13.0 joe-4.6/joe/b.c:516:8: error: Expression 'ITEM=(void*)(p),((struct point*)ITEM)->link.prev->link.next=((struct point*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] head joe-4.6/joe/blocks.c:361:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIZEOF_INT [valueFlowBailoutIncompleteVar] head joe-4.6/joe/blocks.c:453:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIZEOF_INT [valueFlowBailoutIncompleteVar] head joe-4.6/joe/cclass.c:1098:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/cclass.c:531:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/cclass.c:696:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/cclass.c:935:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/charmap.c:1043:41: style: Parameter 'map' can be declared as pointer to const. However it seems that 'byte_isspace' is a callback function, if 'map' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/charmap.c:1116:18: note: You might need to cast the function pointer here joe-4.6/joe/charmap.c:1043:41: note: Parameter 'map' can be declared as pointer to const head joe-4.6/joe/charmap.c:1459:33: style: Parameter 'map' can be declared as pointer to const [constParameterPointer] head joe-4.6/joe/charmap.c:1464:37: style: Parameter 'map' can be declared as pointer to const [constParameterPointer] 2.13.0 joe-4.6/joe/cmd.c:350:13: style: Condition 'bw->o.mfirst' is always false [knownConditionTrueFalse] joe-4.6/joe/cmd.c:345:13: note: Assuming condition 'bw->o.mfirst' is false joe-4.6/joe/cmd.c:350:13: note: Condition 'bw->o.mfirst' is always false head joe-4.6/joe/lattr.c:134:23: style: Parameter 'b' can be declared as pointer to const [constParameterPointer] head joe-4.6/joe/lattr.c:134:43: style: Parameter 'db' can be declared as pointer to const [constParameterPointer] head joe-4.6/joe/lattr.c:87:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable saved_s [valueFlowBailoutIncompleteVar] head joe-4.6/joe/macro.c:321:15: style: Parameter 'w' can be declared as pointer to const [constParameterPointer] head joe-4.6/joe/macro.c:64:59: style: Argument '(macro->size=8)*((ptrdiff_t)sizeof(struct MACRO*))' to function joe_malloc is always 64. It does not matter what value 'macro->size' has. [knownArgument] 2.13.0 joe-4.6/joe/macro.c:64:59: style: Argument '(macro->size=8)*((ptrdiff_t)sizeof(struct macro*))' to function joe_malloc is always 64. It does not matter what value 'macro->size' has. [knownArgument] head joe-4.6/joe/macro.c:744:22: style: Parameter 'w' can be declared as pointer to const. However it seems that 'ifabrt' is a callback function, if 'w' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/macro.c:754:72: note: You might need to cast the function pointer here joe-4.6/joe/macro.c:744:22: note: Parameter 'w' can be declared as pointer to const head joe-4.6/joe/macro.c:744:31: style: Parameter 'object' can be declared as pointer to const. However it seems that 'ifabrt' is a callback function, if 'object' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/macro.c:754:72: note: You might need to cast the function pointer here joe-4.6/joe/macro.c:744:31: note: Parameter 'object' can be declared as pointer to const head joe-4.6/joe/mouse.c:190:21: style: Parameter 'xx' can be declared as pointer to const [constParameterPointer] head joe-4.6/joe/mouse.c:65:27: style: Parameter 'w' can be declared as pointer to const [constParameterPointer] 2.13.0 joe-4.6/joe/options.c:1196:54: error: Subtracting pointers that point to different objects [comparePointers] joe-4.6/joe/b.h:85:6: note: Variable declared here. joe-4.6/joe/options.c:1196:35: note: Address of variable taken here. joe-4.6/joe/options.c:91:9: note: Variable declared here. joe-4.6/joe/options.c:1196:65: note: Address of variable taken here. joe-4.6/joe/options.c:1196:54: note: Subtracting pointers that point to different objects 2.13.0 joe-4.6/joe/options.c:1200:49: error: Subtracting pointers that point to different objects [comparePointers] joe-4.6/joe/b.h:110:6: note: Variable declared here. joe-4.6/joe/options.c:1200:35: note: Address of variable taken here. joe-4.6/joe/options.c:91:9: note: Variable declared here. joe-4.6/joe/options.c:1200:60: note: Address of variable taken here. joe-4.6/joe/options.c:1200:49: note: Subtracting pointers that point to different objects head joe-4.6/joe/scrn.c:877:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/termcap.c:178:71: style: Argument '((ptrdiff_t)sizeof(struct sortentry))*(sortsiz=64)' to function joe_malloc is always 1024. It does not matter what value 'sortsiz' has. [knownArgument] head joe-4.6/joe/termcap.c:682:23: style: Parameter 'ptr' can be declared as pointer to const. However it seems that 'cst' is a callback function, if 'ptr' is declared with const you might also need to cast function pointer(s). [constParameterCallback] joe-4.6/joe/termcap.c:694:13: note: You might need to cast the function pointer here joe-4.6/joe/termcap.c:682:23: note: Parameter 'ptr' can be declared as pointer to const head joe-4.6/joe/tty.c:1000:15: style: Variable 'ttydir' can be declared as pointer to const [constVariablePointer] head joe-4.6/joe/tty.c:1001:15: style: Variable 'ptydir' can be declared as pointer to const [constVariablePointer] head joe-4.6/joe/tty.c:1020:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] head joe-4.6/joe/tty.c:1195:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] head joe-4.6/joe/tty.c:1337:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] head joe-4.6/joe/tty.c:237:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIG_DFL [valueFlowBailoutIncompleteVar] head joe-4.6/joe/tty.c:339:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] head joe-4.6/joe/tty.c:456:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TIOCSETN [valueFlowBailoutIncompleteVar] head joe-4.6/joe/tty.c:542:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable F_SETFL [valueFlowBailoutIncompleteVar] head joe-4.6/joe/tty.c:817:84: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/tty.c:862:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] head joe-4.6/joe/tty.c:883:82: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/uerror.c:141:11: error: Expression 'ITEM=(void*)(errors.link.next),((struct ERROR*)ITEM)->link.prev->link.next=((struct ERROR*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] 2.13.0 joe-4.6/joe/uerror.c:141:11: error: Expression 'ITEM=(void*)(errors.link.next),((struct error*)ITEM)->link.prev->link.next=((struct error*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] head joe-4.6/joe/ufile.c:489:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDONLY [valueFlowBailoutIncompleteVar] head joe-4.6/joe/uisrch.c:129:11: error: Expression 'ITEM=(void*)(i),((struct IREC*)ITEM)->link.prev->link.next=((struct IREC*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] 2.13.0 joe-4.6/joe/uisrch.c:129:11: error: Expression 'ITEM=(void*)(i),((struct irec*)ITEM)->link.prev->link.next=((struct irec*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] head joe-4.6/joe/undo.c:160:9: error: Expression 'ITEM=(void*)(ptr),((struct UNDOREC*)ITEM)->link.prev->link.next=((struct UNDOREC*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] 2.13.0 joe-4.6/joe/undo.c:160:9: error: Expression 'ITEM=(void*)(ptr),((struct undorec*)ITEM)->link.prev->link.next=((struct undorec*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] head joe-4.6/joe/undo.c:191:10: error: Expression 'ITEM=(void*)(undo->recs.link.next),((struct UNDOREC*)ITEM)->link.prev->link.next=((struct UNDOREC*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] 2.13.0 joe-4.6/joe/undo.c:191:10: error: Expression 'ITEM=(void*)(undo->recs.link.next),((struct undorec*)ITEM)->link.prev->link.next=((struct undorec*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] head joe-4.6/joe/undo.c:195:8: error: Expression 'ITEM=(void*)(undo->recs.link.next),((struct UNDOREC*)ITEM)->link.prev->link.next=((struct UNDOREC*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] 2.13.0 joe-4.6/joe/undo.c:195:8: error: Expression 'ITEM=(void*)(undo->recs.link.next),((struct undorec*)ITEM)->link.prev->link.next=((struct undorec*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] head joe-4.6/joe/undo.c:312:11: error: Expression 'ITEM=(void*)(yanked.link.next),((struct UNDOREC*)ITEM)->link.prev->link.next=((struct UNDOREC*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] 2.13.0 joe-4.6/joe/undo.c:312:11: error: Expression 'ITEM=(void*)(yanked.link.next),((struct undorec*)ITEM)->link.prev->link.next=((struct undorec*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] head joe-4.6/joe/undo.c:514:11: error: Expression 'ITEM=(void*)(yanked.link.next),((struct UNDOREC*)ITEM)->link.prev->link.next=((struct UNDOREC*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] 2.13.0 joe-4.6/joe/undo.c:514:11: error: Expression 'ITEM=(void*)(yanked.link.next),((struct undorec*)ITEM)->link.prev->link.next=((struct undorec*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] head joe-4.6/joe/utag.c:204:7: style: Condition 'f' is always true [knownConditionTrueFalse] 2.13.0 joe-4.6/joe/utag.c:204:7: style: Condition 'f' is always true [knownConditionTrueFalse] joe-4.6/joe/utag.c:198:6: note: Assuming condition '!f' is false joe-4.6/joe/utag.c:204:7: note: Condition 'f' is always true head joe-4.6/joe/utag.c:208:33: warning: Either the condition 'f' is redundant or there is possible null pointer dereference: f. [nullPointerRedundantCheck] joe-4.6/joe/utag.c:204:7: note: Assuming that condition 'f' is not redundant joe-4.6/joe/utag.c:208:33: note: Null pointer dereference head joe-4.6/joe/utag.c:39:11: error: Expression 'ITEM=(void*)(tags.link.next),((struct TAG*)ITEM)->link.prev->link.next=((struct TAG*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] 2.13.0 joe-4.6/joe/utag.c:39:11: error: Expression 'ITEM=(void*)(tags.link.next),((struct tag*)ITEM)->link.prev->link.next=((struct tag*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] head joe-4.6/joe/util/checkwidths.c:117:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] head joe-4.6/joe/util/termidx.c:67:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] head joe-4.6/joe/util/uniproc.c:225:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/util/uniproc.c:372:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/util/uniproc.c:698:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/util/uniproc.c:740:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/util/uniproc.c:785:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/utils.c:331:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/utils.c:496:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/utils.c:514:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/utils.c:532:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] head joe-4.6/joe/utils.c:75:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] head joe-4.6/joe/utils.c:84:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] head joe-4.6/joe/vfile.c:140:55: style: Argument '(vheadsz=16)*((ptrdiff_t)sizeof(struct VPAGE*))' to function joe_malloc is always 128. It does not matter what value 'vheadsz' has. [knownArgument] 2.13.0 joe-4.6/joe/vfile.c:140:55: style: Argument '(vheadsz=16)*((ptrdiff_t)sizeof(struct vpage*))' to function joe_malloc is always 128. It does not matter what value 'vheadsz' has. [knownArgument] head joe-4.6/joe/vfile.c:197:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] head joe-4.6/joe/vfile.c:284:11: error: Expression 'ITEM=(void*)(vfile),((struct VFILE*)ITEM)->link.prev->link.next=((struct VFILE*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] 2.13.0 joe-4.6/joe/vfile.c:284:11: error: Expression 'ITEM=(void*)(vfile),((struct vfile*)ITEM)->link.prev->link.next=((struct vfile*)ITEM)->link.next' depends on order of evaluation of side effects [unknownEvaluationOrder] head joe-4.6/joe/vfile.c:84:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] head joe-4.6/joe/vt.c:372:30: style: Parameter 'bw' can be declared as pointer to const [constParameterPointer] head joe-4.6/joe/vt.c:406:30: style: Parameter 'bw' can be declared as pointer to const [constParameterPointer] head joe-4.6/joe/vt.c:475:30: style: Parameter 'bw' can be declared as pointer to const [constParameterPointer] head joe-4.6/joe/vt.c:479:32: style: Parameter 'bw' can be declared as pointer to const [constParameterPointer] head joe-4.6/joe/vt.c:483:32: style: Parameter 'bw' can be declared as pointer to const [constParameterPointer] DONE