diff --git a/STYLE b/STYLE index 5a236a0..4344991 100644 --- a/STYLE +++ b/STYLE @@ -1,53 +1,65 @@ -- Braces are mandatory for all control flow -- Nested indentation should be kept to a minimum -- Empty lines should be placed between different kinds of statements: +0. Braces are mandatory for all control flow, as it improves the visibility of + scope. +1. Nested indentation should be kept to a minimum. +2. Empty lines should be placed between different kinds of statements: -int t; + int t; -assert(io->bufuse > 0); -assert(io->bufuse <= io->bs); + assert(io->bufuse > 0); + assert(io->bufuse <= io->bs); -if ((t = write(io->fd, io->buf, io->bufuse)) < 0) { - io->error = errno; - t = 0; -} else if (t > 0) { - memmove(io->buf, &(io->buf)[t], (io->bufuse -= t)); -} + if ((t = write(io->fd, io->buf, io->bufuse)) < 0) { + io->error = errno; + t = 0; + } else if (t > 0) { + memmove(io->buf, &(io->buf)[t], (io->bufuse -= t)); + } -io->bytes += t; -io->prec += (t > 0 && io->bufuse > 0); -io->rec += (t > 0 && io->bufuse == 0); + io->bytes += t; + io->prec += (t > 0 && io->bufuse > 0); + io->rec += (t > 0 && io->bufuse == 0); -return io; + return io; -- Cases in switch statements and matches in match statements should be indented - one level -- In C, spaces should be placed in control flow statements after the keyword and - before the opening brace: +3. Cases in switch statements and matches in match statements should be indented + one level +4. In C, spaces should be placed in control flow statements after the keyword + and before the opening brace: -for (i = 2; i < argc; ++i) { + for (i = 2; i < argc; ++i) { -- If a function, a C control flow statement, or a Rust macro has arguments that - cause the statement to be broken into multiple lines, this should be done by - placing the arguments on a new line inside the parentheses: +5. If a function, a C control flow statement, or a Rust macro has arguments that + cause the statement to be broken into multiple lines, this should be done by + placing the arguments on a new line inside the parentheses: -let usage = format!( - "Usage: {} [-d delimiter] index command [args...]", - argv[0], -); + let usage = format!( + "Usage: {} [-d delimiter] index command [args...]", + argv[0], + ); -- If Rust function arguments or fields are on their own lines, they should - always have a trailing comma. +6. If Rust function arguments or fields are on their own lines, they should + always have a trailing comma: -- If text is on the same line as a brace, spaces should be placed after an - opening curly brace and before a closing one: + return Err(EvaluationError { + message: format!("{}: Invalid token", i), + code: EX_DATAERR, + }) -use sysexits::{ EX_DATAERR, EX_IOERR, EX_UNAVAILABLE, EX_USAGE }; +7. If text is on the same line as a brace, spaces should be placed after an + opening curly brace and before a closing one: -- If a control flow statement is short enough to be easily understood in a - glance, it may be placed on a single line: + use sysexits::{ EX_DATAERR, EX_IOERR, EX_UNAVAILABLE, EX_USAGE }; -if (!argc < 0) { usage(program_name); } +8. If a control flow statement is short enough to be easily understood in a + glance, it may be placed on a single line: + + if (!argc < 0) { usage(program_name); } + +9. In C, note everything you use from a library in a comment subsequent to its + #include statement: + + #include /* close(2), getopt(3), lseek(2), read(2), write(2), + * optarg, optind, STDIN_FILENO, STDOUT_FILENO */ -- Copyright © 2024 Emma Tebibyte