.. | .. |
---|
113 | 113 | return args |
---|
114 | 114 | |
---|
115 | 115 | |
---|
116 | | -def main(): |
---|
| 116 | +def print_undefined_symbols(): |
---|
117 | 117 | """Main function of this module.""" |
---|
118 | 118 | args = parse_options() |
---|
119 | 119 | |
---|
.. | .. |
---|
472 | 472 | return defined, references |
---|
473 | 473 | |
---|
474 | 474 | |
---|
| 475 | +def main(): |
---|
| 476 | + try: |
---|
| 477 | + print_undefined_symbols() |
---|
| 478 | + except BrokenPipeError: |
---|
| 479 | + # Python flushes standard streams on exit; redirect remaining output |
---|
| 480 | + # to devnull to avoid another BrokenPipeError at shutdown |
---|
| 481 | + devnull = os.open(os.devnull, os.O_WRONLY) |
---|
| 482 | + os.dup2(devnull, sys.stdout.fileno()) |
---|
| 483 | + sys.exit(1) # Python exits with error code 1 on EPIPE |
---|
| 484 | + |
---|
| 485 | + |
---|
475 | 486 | if __name__ == "__main__": |
---|
476 | 487 | main() |
---|