Browse Source

pr pickups

Jon Lipstate 2 years ago
parent
commit
203ae32b79
2 changed files with 28 additions and 12 deletions
  1. 23 7
      core/strings/builder.odin
  2. 5 5
      core/strings/strings.odin

+ 23 - 7
core/strings/builder.odin

@@ -148,8 +148,7 @@ _builder_stream_vtable_obj := io.Stream_VTable{
 	},
 	},
 	impl_destroy = proc(s: io.Stream) -> io.Error {
 	impl_destroy = proc(s: io.Stream) -> io.Error {
 		b := (^Builder)(s.stream_data)
 		b := (^Builder)(s.stream_data)
-		delete(b.buf)
-		b.buf=nil
+		builder_destroy(b)
 		return .None
 		return .None
 	},
 	},
 }
 }
@@ -179,7 +178,7 @@ to_writer :: proc(b: ^Builder) -> io.Writer {
 	return io.to_writer(to_stream(b))
 	return io.to_writer(to_stream(b))
 }
 }
 /*
 /*
-Deletes and clears the Builder byte buffer content
+Deletes the Builder byte buffer content
 
 
 **Inputs**  
 **Inputs**  
 - b: A pointer to the Builder
 - b: A pointer to the Builder
@@ -501,12 +500,12 @@ Example:
 		strings.write_quoted_string(&builder, "a")        // 3
 		strings.write_quoted_string(&builder, "a")        // 3
 		strings.write_quoted_string(&builder, "bc", '\'') // 4
 		strings.write_quoted_string(&builder, "bc", '\'') // 4
 		strings.write_quoted_string(&builder, "xyz")      // 5
 		strings.write_quoted_string(&builder, "xyz")      // 5
-		fmt.println(strings.to_string(builder))           // -> "a"'bc'xyz"
+		fmt.println(strings.to_string(builder))
 	}
 	}
 
 
 Output:
 Output:
 
 
-	"a"'bc'xyz"
+	"a"'bc'"xyz"
 
 
 NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written.
 NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written.
 
 
@@ -517,12 +516,29 @@ write_quoted_string :: proc(b: ^Builder, str: string, quote: byte = '"') -> (n:
 	return
 	return
 }
 }
 /*
 /*
-Appends an encoded rune to the Builder and returns the number of bytes written
+Appends a rune to the Builder and returns the number of bytes written
 
 
 **Inputs**  
 **Inputs**  
 - b: A pointer to the Builder
 - b: A pointer to the Builder
 - r: The rune to be appended
 - r: The rune to be appended
-- write_quote: Optional boolean flag to write the quote character (default is true)
+- write_quote: Optional boolean flag to wrap in single-quotes (') (default is true)
+
+Example:
+
+	import "core:fmt"
+	import "core:strings"
+
+	write_encoded_rune_example :: proc() {
+		builder := strings.builder_make()
+		strings.write_encoded_rune(&builder, 'a', false) // 1
+		strings.write_encoded_rune(&builder, '\"', true) // 3
+		strings.write_encoded_rune(&builder, 'x', false) // 1
+		fmt.println(strings.to_string(builder))
+	}
+
+Output:
+
+	a'"'x
 
 
 NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written.
 NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written.
 
 

+ 5 - 5
core/strings/strings.odin

@@ -2078,7 +2078,7 @@ is_null :: proc(r: rune) -> bool {
 	return r == 0x0000
 	return r == 0x0000
 }
 }
 /*
 /*
-Finds the index of the first rune in the string s for which the procedure p returns the same value as truth
+Find the index of the first rune r in string s for which procedure p returns the same as truth, or -1 if no such rune appears.
 
 
 **Inputs**  
 **Inputs**  
 - s: The input string
 - s: The input string
@@ -2777,7 +2777,7 @@ Centers the input string within a field of specified length by adding pad string
 
 
 **Inputs**  
 **Inputs**  
 - str: The input string
 - str: The input string
-- length: The desired length of the centered string
+- length: The desired length of the centered string, in runes
 - pad: The string used for padding on both sides
 - pad: The string used for padding on both sides
 - allocator: (default is context.allocator)
 - allocator: (default is context.allocator)
 
 
@@ -2876,8 +2876,8 @@ Writes a given pad string a specified number of times to an io.Writer
 **Inputs**  
 **Inputs**  
 - w: The io.Writer to write the pad string to
 - w: The io.Writer to write the pad string to
 - pad: The pad string to be written
 - pad: The pad string to be written
-- pad_len: The length of the pad string
-- remains: The number of times to write the pad string
+- pad_len: The length of the pad string, in runes
+- remains: The number of times to write the pad string, in runes
 */
 */
 @private
 @private
 write_pad_string :: proc(w: io.Writer, pad: string, pad_len, remains: int) {
 write_pad_string :: proc(w: io.Writer, pad: string, pad_len, remains: int) {
@@ -2956,7 +2956,7 @@ fields :: proc(s: string, allocator := context.allocator) -> []string #no_bounds
 	return a
 	return a
 }
 }
 /*
 /*
-Splits a string into a slice of substrings at each run of unicode code points `ch` satisfying the predicate f(ch)
+Splits a string into a slice of substrings at each run of unicode code points `r` satisfying the predicate f(r)
 
 
 *Allocates Using Provided Allocator*
 *Allocates Using Provided Allocator*