Tweak is_* function so the compiler can inline them.
diff --git a/yamlprivateh.go b/yamlprivateh.go index 9dd382f..f5325a6 100644 --- a/yamlprivateh.go +++ b/yamlprivateh.go
@@ -94,7 +94,8 @@ // Check if the character at the specified position is blank (space or tab). func is_blank(b []byte, i int) bool { - return is_space(b, i) || is_tab(b, i) + //return is_space(b, i) || is_tab(b, i) + return b[i] == ' ' || b[i] == '\t' } // Check if the character at the specified position is a line break. @@ -112,17 +113,43 @@ // Check if the character is a line break or NUL. func is_breakz(b []byte, i int) bool { - return is_break(b, i) || b[i] == 0x00 + //return is_break(b, i) || is_z(b, i) + return (// is_break: + b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) + // is_z: + b[i] == 0) } // Check if the character is a line break, space, or NUL. func is_spacez(b []byte, i int) bool { - return is_space(b, i) || is_breakz(b, i) + //return is_space(b, i) || is_breakz(b, i) + return (// is_space: + b[i] == ' ' || + // is_breakz: + b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) + b[i] == 0) } // Check if the character is a line break, space, tab, or NUL. func is_blankz(b []byte, i int) bool { - return is_blank(b, i) || is_breakz(b, i) + //return is_blank(b, i) || is_breakz(b, i) + return (// is_blank: + b[i] == ' ' || b[i] == '\t' || + // is_breakz: + b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) + b[i] == 0) } // Determine the width of the character.