Burdette Lamar
0b0ae583f4
[DOC] Enhanced RDoc for String ( #5753 )
...
Treats:
#length
#bytesize
2022-04-03 10:09:34 -05:00
Burdette Lamar
7be4d900f0
[DOC] Enhanced RDoc for String ( #5751 )
...
Adds to doc for String.new, also making it compliant with documentation_guide.rdoc.
Fixes some broken links in io.c (that I failed to correct yesterday).
2022-04-02 14:26:49 -05:00
Burdette Lamar
056b7a8633
[DOC] Enhanced RDoc for String ( #5742 )
...
Treats:
#force_encoding
#b
#valid_encoding?
#ascii_only?
#scrub
#scrub!
#unicode_normalized?
Plus a couple of minor tweaks.
2022-03-31 15:09:25 -05:00
Burdette Lamar
ffcdbedbfb
Repaired What's Here sections for Range, String, Symbol, Struct ( #5735 )
...
Repaired What's Here sections for Range, String, Symbol, Struct.
2022-03-30 13:46:24 -05:00
Burdette Lamar
b257034ae5
[DOC] Enhanced RDoc for String ( #5730 )
...
Treats:
#start_with?
#end_with?
#delete_prefix
#delete_prefix!
#delete_suffix
#delete_suffix!
2022-03-29 09:54:29 -05:00
Burdette Lamar
5525e47a0b
[DOC] Enhanced RDoc for String ( #5726 )
...
Treats:
#ljust
#rjust
#center
#partition
#rpartition
2022-03-28 15:49:18 -05:00
Burdette Lamar
d52cf1013f
[DOC] Enhanced RDoc for String ( #5724 )
...
Treats:
#scan
#hex
#oct
#crypt
#ord
#sum
2022-03-27 14:45:14 -05:00
Nobuyoshi Nakada
1b0f05168d
[DOC] Fix references to unary operator
2022-03-27 11:24:06 +09:00
Burdette Lamar
e699e2d9bf
Enhanced RDoc for String ( #5723 )
...
Treats:
#lstrip
#lstrip!
#rstrip
#rstrip!
#strip
#strip!
Adds section Whitespace in Strings.
2022-03-26 12:42:44 -05:00
Nobuyoshi Nakada
300f4677c9
[DOC] Use simple references to operator methods
...
Method references is not only able to be marked up as code, also
reflects `--show-hash` option.
The bug that prevented the old rdoc from correctly parsing these
methods was fixed last month.
2022-03-26 21:13:16 +09:00
Burdette Lamar
465edb96f0
[DOC] Enhanced RDoc for String ( #5707 )
...
Treated:
#chomp
#chomp!
#chop
#chop!
2022-03-24 19:40:58 -05:00
Burdette Lamar
0140e6c41e
[DOC] Enhanced RDoc for String ( #5685 )
...
Treats:
#chars
#codepoints
#each_char
#each_codepoint
#each_grapheme_cluster
#grapheme_clusters
Also, corrects a passage in #unicode_normalize that mentioned module UnicodeNormalize, whose doc (:nodoc:, actually) says not to mention it.
2022-03-22 14:51:05 -05:00
Burdette Lamar
c129b6119d
[DOC] Use RDoc inclusions in string.c ( #5683 )
...
As @peterzhu2118 and @duerst have pointed out, putting string method's RDoc into doc/ (which allows non-ASCII in examples) makes the "click to toggle source" feature not work for that method.
This PR moves the primary method doc back into string.c, then includes RDoc from doc/string/*.rdoc, and also removes doc/string.rdoc.
The affected methods are:
::new
#bytes
#each_byte
#each_line
#split
The call-seq is in string.c because it works there; it did not work when the call-seq is in doc/string/*.rdoc.
This PR also updates the relevant guidance in doc/documentation_guide.rdoc.
2022-03-21 14:58:00 -05:00
Burdette Lamar
d52f41b765
[DOC] Enhanced RDoc for String ( #5675 )
...
Treats:
#split
#each_line
#lines
#each_byte
#bytes
2022-03-18 17:17:00 -05:00
Shugo Maeda
1107839a7f
Add String#bytesplice
2022-03-18 11:51:03 +09:00
Burdette Lamar
59a1a8185f
[DOC] Enhanced RDoc for String#split ( #5644 )
...
* Enhanced RDoc for String#split
* Enhanced RDoc for String#split
* Enhanced RDoc for String#split
* Enhanced RDoc for String#split
* Enhanced RDoc for String#split
2022-03-16 14:45:48 -05:00
Nobuyoshi Nakada
4d93b6299c
Initialize mutex for crypt(3) statically
...
Assuming that all platforms, where only `crypt` is available but
not `crypt_r`, are POSIX-base.
2022-03-16 18:51:34 +09:00
Burdette Lamar
561dda9934
[DOC] Enhanced RDoc for String ( #5635 )
...
Treats:
#count
#delete
#delete!
#squeeze
#squeeze!
Adds section "Multiple Character Selectors" to doc/character_selectors.rdoc.
Co-authored-by: Peter Zhu <peter@peterzhu.ca>
2022-03-09 19:53:51 -06:00
Burdette Lamar
72c038a8f5
[DOC] Enhanced RDoc for String ( #5633 )
...
Treats:
#tr (revised to link to "Character Selectors" document)
#tr!
#tr_s
#tr_s!
Also renames doc/character_selector.rdoc to match its title.
2022-03-09 08:42:12 -06:00
Kazuhiro NISHIYAMA
b068a53dc9
[DOC] Fix default offset of String#byterindex
2022-03-09 15:15:11 +09:00
Burdette Lamar
faff37da57
[DOC] Enhanced RDoc for String #tr and #tr! ( #5626 )
2022-03-07 12:58:29 -06:00
Nobuyoshi Nakada
7f7f07a600
[DOC] mark `rb_str_init` as `:nodoc:`
...
Otherwise, an empty entry will be generated as `String::new` along
with the one from doc/string.rb.
2022-03-03 13:39:07 +09:00
Mau Magnaguagno
347c3faf8e
[DOC] Fix String#getbyte doc
...
* String#getbyte returns `nil` if `index` is out of range.
* Add String#getbyte example with nil output.
* Modify String#getbyte example to use negative index.
2022-03-01 10:05:49 +09:00
Nobuyoshi Nakada
3e5d7e3176
[DOC] Move String.new to allow non US-ASCII characters
2022-02-26 21:50:46 +09:00
Burdette Lamar
26ffda2fd2
[DOC] Enhanced RDoc for some encoding methods ( #5598 )
...
In String, treats:
#b
#scrub
#scrub!
#unicode_normalize
#unicode_normalize!
#encode
#encode!
Also adds a note to IO.new (suggested by @jeremyevans).
2022-02-25 13:12:59 -06:00
Shugo Maeda
63401b1384
Rename the wrong variable name `beg` to `len`
2022-02-23 11:23:33 +09:00
Nobuyoshi Nakada
8f0e3a97f9
rb_debug_rstring_null_ptr: add newlines in the message [ci skip]
...
The message should end with a newline, and break the long
paragraph.
2022-02-21 16:22:23 +09:00
Shugo Maeda
c8817d6a3e
Add String#byteindex, String#byterindex, and MatchData#byteoffset ( #5518 )
...
* Add String#byteindex, String#byterindex, and MatchData#byteoffset [Feature #13110 ]
Co-authored-by: NARUSE, Yui <naruse@airemix.jp>
2022-02-19 19:10:00 +09:00
Nobuyoshi Nakada
6e65e04186
[DOC] Remove unnecessary `rdoc-ref:` schemes
2022-02-12 12:38:37 +09:00
Nobuyoshi Nakada
50c972a1ae
[DOC] Simplify operator method references
2022-02-12 12:38:36 +09:00
Paarth Madan
2a30ddd9f3
Remove extraneous "." in String#+@ documentation
2022-02-08 10:33:49 +09:00
Nobuyoshi Nakada
8ca7b0b68a
[DOC] Fix broken links to operator methods
...
Once https://github.com/ruby/rdoc/pull/865 is merged, these hacks
are no longer needed.
2022-02-08 01:39:37 +09:00
Nobuyoshi Nakada
07bf65858d
[DOC] Fix broken links to case_mapping.rdoc
2022-02-08 01:28:08 +09:00
Nobuyoshi Nakada
16fdc1ff46
[DOC] Fix broken links to literals.rdoc
2022-02-08 01:27:52 +09:00
Nobuyoshi Nakada
bc5662d9d8
[DOC] Simplify links to global methods
2022-02-08 01:18:56 +09:00
Peter Zhu
a32e5e1b97
[DOC] Use RDoc link style for links in the same class/module
...
I used this regex:
(?<=\[)#(?:class|module)-([A-Za-z]+)-label-([A-Za-z0-9\-\+]+)
And performed a global find & replace for this:
rdoc-ref:$1@$2
2022-02-07 09:52:06 -05:00
Peter Zhu
f9a2802bc5
[DOC] Use RDoc link style for links to other classes/modules
...
I used this regex:
([A-Za-z]+)\.html#(?:class|module)-[A-Za-z]+-label-([A-Za-z0-9\-\+]+)
And performed a global find & replace for this:
rdoc-ref:$1@$2
2022-02-07 09:52:06 -05:00
Burdette Lamar
a07fa198a6
Improve links to labels in string.c and struct.c ( #5531 )
2022-02-06 09:44:40 -06:00
Peter Zhu
be68b3a490
Change termlen when changing encoding during concatenation
...
After changing the encoding, we should update the terminator length.
2022-01-07 10:50:03 -05:00
Nobuyoshi Nakada
3f9af8a9dc
[DOC] Fix typos in a doxygen comment [ci skip]
2022-01-07 23:55:59 +09:00
Peter Zhu
ae0d67d762
Revert "Set encoding before concatenating to string"
...
This reverts commit 44368b5f8b
.
2022-01-06 17:23:05 -05:00
Peter Zhu
5f55b03716
Set correct termlen for frozen strings
...
Frozen strings should have the same termlen as the original string when
copy_encoding is true.
2022-01-06 14:33:35 -05:00
Peter Zhu
44368b5f8b
Set encoding before concatenating to string
...
If we set encoding after the call to rb_str_buf_cat, then rb_str_buf_cat
will not set the correct terminator length.
2022-01-06 14:33:35 -05:00
Nobuyoshi Nakada
39bc5de833
Remove tainted and trusted features
...
Already these had been announced to be removed in 3.2.
2021-12-26 23:28:54 +09:00
Nobuyoshi Nakada
e2ec97c4b8
[DOC] How to get the longest last match [Bug #18415 ]
2021-12-19 20:27:31 +09:00
Burdette Lamar
5588aa79d4
What's Here for Symbol ( #5289 )
...
* What's Here for Symbol
2021-12-17 17:02:12 -06:00
Burdette Lamar
f7e266e6d2
Enhanced RDoc for case mapping ( #5245 )
...
Adds file doc/case_mapping.rdoc, which describes case mapping and provides a link target that methods doc can link to.
Revises:
String#capitalize
String#capitalize!
String#casecmp
String#casecmp?
String#downcase
String#downcase!
String#swapcase
String#swapcase!
String#upcase
String#upcase!
Symbol#capitalize
Symbol#casecmp
Symbol#casecmp?
Symbol#downcase
Symbol#swapcase
Symbol#upcase
2021-12-17 06:05:31 -06:00
Burdette Lamar
e5ff030f60
Enhanced RDoc for String ( #5234 )
...
Treated:
#to_i
#to_f
#to_s
#inspect
#dump
#undump
2021-12-10 10:50:13 -06:00
Burdette Lamar
9a2ecddf32
Enhanced RDoc for String ( #5227 )
...
Treats:
#replace
#clear
#chr
#getbyte
#setbyte
#byteslice
#reverse
#reverse!
#include?
2021-12-08 12:29:56 -06:00
Burdette Lamar
7fc9d83bd1
Fix link ( #5208 )
2021-12-03 10:46:35 -06:00
Burdette Lamar
28fb6d6b9e
Adding links to literals and Kernel ( #5192 )
...
* Adding links to literals and Kernel
2021-12-03 07:12:28 -06:00
Peter Zhu
7cfacbcad2
Improve performance of embedded string allocation
...
Non-VWA embedded string allocation had a performance regression. This
commit improves performance of non-VWA embedded string allocation.
2021-11-26 13:27:32 -05:00
Peter Zhu
9aded89f40
Speed up Ractors for Variable Width Allocation
...
This commit adds a Ractor cache for every size pool. Previously, all VWA
allocated objects used the slowpath and locked the VM.
On a micro-benchmark that benchmarks String allocation:
VWA turned off:
29.196591 0.889709 30.086300 ( 9.434059)
VWA before this commit:
29.279486 41.477869 70.757355 ( 12.527379)
VWA after this commit:
16.782903 0.557117 17.340020 ( 4.255603)
2021-11-23 10:51:27 -05:00
Peter Zhu
aeae6e2842
[Feature #18290 ] Remove all usages of rb_gc_force_recycle
...
This commit removes usages of rb_gc_force_recycle since it is a burden
to maintain and makes changes to the GC difficult.
2021-11-08 14:05:54 -05:00
Yusuke Endoh
4b248e7994
string.c: Follow up to ae2359f602
...
* Mention `\0`
* Make the example of hash replacement meaningful
2021-11-03 03:52:28 +09:00
Burdette Lamar
ae2359f602
Enhanced RDoc for String ( #5060 )
...
Treated:
#slice!
#sub
#sub!
#gsub
#gsub!
2021-11-02 13:04:58 -05:00
Burdette Lamar
3e743d3147
Cleanup some RDoc ( #5050 )
...
Mostly adding blank line before and after code segment, to improve compliance with doc\documentation_guide.rdoc.
2021-10-28 17:01:49 -05:00
Yusuke Endoh
acb2f86caa
string.c: Add some comments about STR flags
2021-10-29 01:57:29 +09:00
Peter Zhu
a5b6598192
[Feature #18239 ] Implement VWA for strings
...
This commit adds support for embedded strings with variable capacity and
uses Variable Width Allocation to allocate strings.
2021-10-25 13:26:23 -04:00
Peter Zhu
46b66eb9e8
[Feature #18239 ] Add struct for embedded strings
2021-10-25 13:26:23 -04:00
Jeremy Evans
2a5c3a4d0f
Update documentation for String and Symbol to discuss differences
...
Implements [Feature #14347 ]
2021-10-15 13:54:03 -07:00
Nobuyoshi Nakada
78ff9b719c
Add tests for the edge caces of `String#end_with?`
...
Also, check if a suffix is empty, to guarantee the assumption of
`onigenc_get_left_adjust_char_head` that `*s` is always accessible,
even in the case of `SHARABLE_MIDDLE_SUBSTRING`.
2021-10-08 14:08:03 +09:00
git
1bf3f3f4da
* remove trailing spaces. [ci skip]
2021-10-06 00:40:54 +09:00
Jeremy Evans
c6706f15af
Fix documentation for String#{<<,concat,prepend}
...
These methods mutate and return the receiver, they don't create
and return a new string.
Fixes [Bug #18241 ]
2021-10-05 08:39:27 -07:00
Nobuyoshi Nakada
cd182c5ee1
Adjust types to rb_enc_left_char_head
...
I dislike unnatural casts.
2021-10-05 17:14:29 +09:00
Nobuyoshi Nakada
5a961c3768
Remove a redundant cast between the exact same types
2021-10-05 15:56:34 +09:00
卜部昌平
f032c09bca
rb_enc_left_char_head(): take void*
...
Nobu doesn't like (char*) cast.
2021-10-05 14:18:23 +09:00
卜部昌平
499660b04f
downcase_single/upcase_single: assume ASCII
...
These functions assume ASCII compatibility. That has to be ensured in
their caller.
2021-10-05 14:18:23 +09:00
卜部昌平
5112a54846
include/ruby/encoding.h: convert macros into inline functions
...
Less macros == huge win.
2021-10-05 14:18:23 +09:00
卜部昌平
e42c8c160d
add undeclared variables
...
Why did they even exist?
2021-10-05 14:18:23 +09:00
Nobuyoshi Nakada
842b0008c1
Skip broken strings as the locale encoding
2021-10-01 20:28:44 +09:00
Kazuhiro NISHIYAMA
e0c6e8c64a
[DOC] Use `unpack1` instead of `unpack(template)[0]` [ci skip]
2021-09-23 09:20:00 +09:00
Nobuyoshi Nakada
cbbda3e648
Adjust indent in string.c [ci skip]
2021-09-16 23:49:16 +09:00
S.H
b8c3a84bdd
Refactor and Using RBOOL macro
2021-09-15 08:11:05 +09:00
Nobuyoshi Nakada
cd829bb078
Remove printf family from the mjit header
...
Linking printf family functions makes mjit objects to link
unnecessary code.
2021-09-11 08:41:32 +09:00
卜部昌平
091faca99c
include/ruby/internal/intern/string.h: add doygen
...
Must not be a bad idea to improve documents. [ci skip]
2021-09-10 20:00:06 +09:00
Peter Zhu
5d81554281
[Bug #18154 ] Fix memory leak in String#initialize
...
String#initialize can leak memory when called on a string that is marked
with STR_NOFREE because it does not unset the STR_NOFREE flag.
2021-09-08 10:20:12 -04:00
Nobuyoshi Nakada
edf01d4e82
Treat NULL fake string as an empty string
...
And the NULL string must be of size 0.
2021-08-17 18:45:36 +09:00
Jeremy Evans
84bf4d2ce5
Term fill in String#{,l,r}strip! even when SHARABLE_MIDDLE_SUBSTRING
...
Each of these methods calls str_modify_keep_cr before
term filling, which should ensure the backing string
uses private memory, and therefore term filling should
not affect other strings.
Skipping the term filling was added in
a707ab4bc8
.
Fixes [Bug #12540 ]
2021-08-11 13:40:49 +09:00
Peter Zhu
c463a5e008
Fix indentation in string.c
...
7 spaces were used for 2 levels of indentation. This commit changes it
to use 8 spaces.
2021-08-03 16:39:02 -04:00
Troy Chance
7f4e86804d
Fix documentation of #<=> and #casecmp [ci skip]
...
Descriptions for return values of -1 and 1 were reversed.
2021-08-02 12:09:07 +09:00
S.H
378e8cdad6
Using RBOOL macro
2021-08-02 12:06:44 +09:00
Nobuyoshi Nakada
eec45a93ef
Escape unprintable chars only, without surrounding quotes
2021-07-24 14:31:41 +09:00
S-H-GAMELINKS
9952e9358e
Refactor rb_str_export and rb_str_export_locale function's
2021-07-07 12:31:43 +09:00
Nobuyoshi Nakada
94bd3bde81
Specify version to remove as bare numbers
2021-06-30 10:47:01 +09:00
Nobuyoshi Nakada
8118d435d0
rb_warn_deprecated_to_remove_at [Feature #17432 ]
...
At compilation time with RUBY_DEBUG enabled, check if the removal
version has been reached.
2021-06-30 10:47:01 +09:00
Nobuyoshi Nakada
391abc543c
Scan the coderange in the given encoding
2021-06-26 16:05:15 +09:00
Ketan Bhatt
2fb435b3ab
Add Related link from String#hash to Object#hash
...
We came across a bug in our code because we assumed `String#hash` to be consistent across Ruby processes, which was incorrect.
Our search lead us to `Object#hash` which has the right warning that `String#hash` doesn't. We also noticed that a previous version of the documentation for `String#hash` pointed to `Object#hash` that was removed by https://github.com/ruby/ruby/pull/3565 .
We think this removal might not be intended and just got missed amidst other changes.
2021-06-23 07:42:02 -07:00
Burdette Lamar
c1741df1a1
What's Here for Numeric and Comparable
2021-06-21 10:38:16 -07:00
Nobuyoshi Nakada
e4f891ce8d
Adjust styles [ci skip]
...
* --braces-after-func-def-line
* --dont-cuddle-else
* --procnames-start-lines
* --space-after-for
* --space-after-if
* --space-after-while
2021-06-17 10:13:40 +09:00
Nobuyoshi Nakada
12f7ba5ed4
Make String#crypt ractor-safe
2021-04-13 12:05:31 +09:00
Nobuyoshi Nakada
df7efdcb6b
Get rid of LONG_LONG redefinition
2021-04-12 22:47:07 +09:00
Jean Boussier
7e8a9af9db
rb_enc_interned_str: handle autoloaded encodings
...
If called with an autoloaded encoding that was not yet
initialized, `rb_enc_interned_str` would crash with
a NULL pointer exception.
See: https://github.com/ruby/ruby/pull/4119#issuecomment-800189841
2021-03-22 21:37:48 +09:00
Jeremy Evans
cfd162d535
Make String#{strip,lstrip}{,!} strip leading NUL bytes
...
The documentation already specifies that they strip whitespace
and defines whitespace to include null.
This wraps the new behavior in the appropriate guards in the specs,
but does not specify behavior for previous versions, because this
is a bug that could be backported.
Fixes [Bug #17467 ]
2021-02-20 11:17:47 +09:00
Sarun Rattanasiri
1a3b68e7c1
correct the result of casecmp? examples [ci skip]
2021-02-12 06:56:51 +09:00
Nobuyoshi Nakada
81f17857a7
Merged too-short salt conditions instead of UNREACHABLE_RETURN
2021-02-11 22:25:31 +09:00
S-H-GAMELINKS
9e66c511ff
Fix 404 link
2021-02-11 13:33:21 +09:00
S-H-GAMELINKS
90f008f569
Remove unsued str_new_shared function declaration
2021-02-04 16:25:55 +09:00
Nobuyoshi Nakada
1f5b8f7084
Constified pointers in str_casecmp
2021-01-30 20:08:18 +09:00
Burdette Lamar
d7a844cb08
Fix broken link in RDoc for String ( #4123 )
...
Link was correct; its target was incorrect; now fixed.
2021-01-26 11:22:13 -06:00