{"record":{"id":"039962a6e69e657d","repo":"nodejs/node","slug":"argument-squash-s-already-set-n","errorCode":null,"errorMessage":"argument --squash / -s already set\\n","messagePattern":"argument --squash / -s already set\\\\n","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"deps/brotli/c/tools/brotli.c","lineNumber":390,"sourceCode":"          return COMMAND_HELP;\n        } else if (c == 'j' || c == 'k') {\n          if (keep_set) {\n            fprintf(stderr, \"argument --rm / -j or --keep / -k already set\\n\");\n            return COMMAND_INVALID;\n          }\n          keep_set = BROTLI_TRUE;\n          params->junk_source = TO_BROTLI_BOOL(c == 'j');\n          continue;\n        } else if (c == 'n') {\n          if (!params->copy_stat) {\n            fprintf(stderr, \"argument --no-copy-stat / -n already set\\n\");\n            return COMMAND_INVALID;\n          }\n          params->copy_stat = BROTLI_FALSE;\n          continue;\n        } else if (c == 's') {\n          if (squash_set) {\n            fprintf(stderr, \"argument --squash / -s already set\\n\");\n            return COMMAND_INVALID;\n          }\n          squash_set = BROTLI_TRUE;\n          params->reject_uncompressible = BROTLI_TRUE;\n          continue;\n        } else if (c == 't') {\n          if (command_set) {\n            fprintf(stderr, \"command already set when parsing -t\\n\");\n            return COMMAND_INVALID;\n          }\n          command_set = BROTLI_TRUE;\n          command = COMMAND_TEST_INTEGRITY;\n          continue;\n        } else if (c == 'v') {\n          if (params->verbosity > 0) {\n            fprintf(stderr, \"argument --verbose / -v already set\\n\");\n            return COMMAND_INVALID;\n          }","sourceCodeStart":372,"sourceCodeEnd":408,"githubUrl":"https://github.com/nodejs/node/blob/1b2de5e052fc0fb95fd7fb6846dcec4ade598e9e/deps/brotli/c/tools/brotli.c#L372-L408","documentation":"`-s`/`--squash` makes brotli error on uncompressible input instead of storing it. It may be set only once; a second occurrence is rejected.","triggerScenarios":"Passing `-s` twice: `brotli -s -s file` or coalesced `brotli -ss file`.","commonSituations":"Alias + explicit duplicate; stacked short flags.","solutions":["Remove the duplicate `-s`.","Build argv from a de-duplicated structure."],"exampleFix":"// before\nbrotli -s -s file\n// after\nbrotli -s file","handlingStrategy":"validation","validationCode":"assert sum(1 for a in argv if a in ('-s','--squash') or (a.startswith('-') and not a.startswith('--') and 's' in a)) <= 1","typeGuard":null,"tryCatchPattern":null,"preventionTips":["State each toggle once.","Audit aliases for repeated flags."],"tags":["brotli","cli","argument-parsing"],"backgroundTag":null,"analyzedSha":"1b2de5e052fc0fb95fd7fb6846dcec4ade598e9e","analyzedAt":"2026-08-13T00:53:24.642Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}