[#120073] [Ruby master Feature#20925] Allow boolean operators at beginning of line to continue previous line — "Dan0042 (Daniel DeLorme) via ruby-core" <ruby-core@...>

Issue #20925 has been reported by Dan0042 (Daniel DeLorme).

12 messages 2024/12/01

[#120141] [Ruby master Bug#20937] "can't set length of shared string" error when using OpenSSL::Cipher#update with buffer — "akiellor (Andrew Kiellor) via ruby-core" <ruby-core@...>

Issue #20937 has been reported by akiellor (Andrew Kiellor).

9 messages 2024/12/09

[#120174] [Ruby master Bug#20943] Constant defined in `Data` block — "nobu (Nobuyoshi Nakada) via ruby-core" <ruby-core@...>

Issue #20943 has been reported by nobu (Nobuyoshi Nakada).

8 messages 2024/12/11

[#120183] [Ruby master Misc#20946] Proposing tomoya ishida (@tompng) as a Ruby committer — "matsuda (Akira Matsuda) via ruby-core" <ruby-core@...>

Issue #20946 has been reported by matsuda (Akira Matsuda).

10 messages 2024/12/12

[#120189] [Ruby master Misc#20947] Propose ydah (Yudai Takada) as a Ruby committer — "yui-knk (Kaneko Yuichiro) via ruby-core" <ruby-core@...>

SXNzdWUgIzIwOTQ3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHl1aS1rbmsgKEthbmVrbyBZdWljaGly

7 messages 2024/12/12

[#120232] [Ruby master Misc#20951] Confusing handling of timezone object's `#utc_to_local` results — "andrykonchin (Andrew Konchin) via ruby-core" <ruby-core@...>

Issue #20951 has been reported by andrykonchin (Andrew Konchin).

7 messages 2024/12/13

[#120250] [Ruby master Feature#20953] Array#fetch_values vs #values_at protocols — "zverok (Victor Shepelev) via ruby-core" <ruby-core@...>

Issue #20953 has been reported by zverok (Victor Shepelev).

11 messages 2024/12/15

[#120252] [Ruby master Bug#20955] Subtle differences with Proc#parameters for anonymous parameters — "zverok (Victor Shepelev) via ruby-core" <ruby-core@...>

SXNzdWUgIzIwOTU1IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHp2ZXJvayAoVmljdG9yIFNoZXBlbGV2

9 messages 2024/12/15

[#120283] [Ruby master Bug#20961] MMTk build on macOS missing librubygc.mmtk.bundle — "shan (Shannon Skipper) via ruby-core" <ruby-core@...>

Issue #20961 has been reported by shan (Shannon Skipper).

8 messages 2024/12/17

[#120303] [Ruby master Bug#20965] `it` vs `binding.local_variables` — "zverok (Victor Shepelev) via ruby-core" <ruby-core@...>

Issue #20965 has been reported by zverok (Victor Shepelev).

10 messages 2024/12/18

[#120315] [Ruby master Bug#20968] `Array#fetch_values` unexpected method name in stack trace — "koic (Koichi ITO) via ruby-core" <ruby-core@...>

Issue #20968 has been reported by koic (Koichi ITO).

22 messages 2024/12/19

[#120325] [Ruby master Bug#20970] `it /1/i` raises undefined method 'it' for main (NoMethodError) even if binding.local_variables includes `it` — "tompng (tomoya ishida) via ruby-core" <ruby-core@...>

Issue #20970 has been reported by tompng (tomoya ishida).

11 messages 2024/12/19

[#120335] [Ruby master Feature#20971] Deprecate `rb_path_check` — "Earlopain (Earlopain _) via ruby-core" <ruby-core@...>

Issue #20971 has been reported by Earlopain (Earlopain _).

13 messages 2024/12/19

[#120458] [Ruby master Misc#20995] exception escapes block given to IO.popen("-") in child process — "martin.dorey@... (Martin Dorey) via ruby-core" <ruby-core@...>

Issue #20995 has been reported by martin.dorey@hds.com (Martin Dorey).

7 messages 2024/12/31

[ruby-core:120402] [Ruby master Feature#20959] Add a way to get codepage of console.

From: "nobu (Nobuyoshi Nakada) via ruby-core" <ruby-core@...>
Date: 2024-12-25 06:05:35 UTC
List: ruby-core #120402
Issue #20959 has been updated by nobu (Nobuyoshi Nakada).

Assignee set to windows
Target version set to 3.5

----------------------------------------
Feature #20959: Add a way to get codepage of console.
https://bugs.ruby-lang.org/issues/20959#change-111182

* Author: YO4 (Yoshinao Muramatsu)
* Status: Open
* Assignee: windows
* Target version: 3.5
----------------------------------------
# Abstract

Add a way to retrieve code pages of console.
On Windows, Encoding.find("locale") returns the console codepage.
To prepare for future changes, specify ```console``` instead of ```locale``` to get the encoding when a console code page is needed.

# Background

On Windows, Encoding.find("locale") returns the console codepage.
This is different from locale in other environments. Also the name and content do not seem to match.
In the future, if we change the locale_encoding of the Windows port to the locale codepage of the C runtime library, we need to get the encoding for the console.
Strings received via pipe from cmd.exe or powershell are encoded in the console codepage.
This would be necessary when communicating with other programs via pipes.

# Proposal

Make Encoding.find("console") return the encoding that represents the console codepage.

# Background(continued)

Since Windows 10, UTF-8 support seems to be enhanced in the commandline environment.
* build 17134
  ucrt supports UTF-8 locale codepage ```setlocale(LC_CTYPE, ".utf8")```
  Windows support UTF-8 ANSI Codepage(experimental) ```Beta: Use Unicode UTF-8 for worldwide language support```
* build 18362
  support ```Set a process code page to UTF-8``` via manifest.
* build 19041
  Time zone name holds in wchar_t internaly, so proper tzname can be obtained regardless of the Windows language setting.

This should not be all.
Through these, I feel that the Microsoft team recommends the use of utf-8. It also seems that Microsoft, which has previously depricated the ANSI version of the API, is treating it as a valid alternative to use in UTF-8.
If it becomes widespread on Windows for libraries to respect the C runtime library locale, ruby would do better to follow it.

Of course, it is good to be able to get the encoding of the console by specifying a console.

# Future plan

By reducing differences from other platforms, bugs and extra code are hoped to be reduced.
* Do ```setlocale(LC_CTYPE, ".utf8");``` in main.c (or refer LC_* environment variables).
* ```Encoding.find("locale")``` returns C runtime library locale.

Since strings obtained from the Windows system have a Unicode code range, the API to obtain fixed UTF-8 encoding remains unchanged.

# Discussion

The code page we can get from Windows also has ACP and OEMCP, but are these necessary?
Is it reasonable to get locale_encoding if Encoding.find("console") is called on other platforms?




-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/


In This Thread

Prev Next