Skip to content

feat(libc): implement localeconv - #3310

Closed
renzipego-cpu wants to merge 1 commit into
boykopovar:mainfrom
renzipego-cpu:feat/libc-localeconv
Closed

renzipego-cpu wants to merge 1 commit into
boykopovar:mainfrom
renzipego-cpu:feat/libc-localeconv

Conversation

@renzipego-cpu

@renzipego-cpu renzipego-cpu commented Oct 11, 2026 •

Copy link
Copy Markdown

Resubmits #3245 (closed by the intake rule). Fixes #3249.

What

libc does not export localeconv (0hlfW1O4Aa4, named with tools/nid_names.py against aerolib). main stops with:

Confirmed on main for:

  • PPSA99600 (Cloud Play)
  • PPSA17641 (SymphonyStation5)

localeconv() takes no arguments and returns a pointer to the standard static C-locale lconv (offsets asserted: sizeof == 0x60, decimal_point at 0x00, negative_sign at 0x48, int_frac_digits at 0x50, int_n_sign_posn at 0x5d); string fields are "." for decimal_point and "" for the rest, character fields CHAR_MAX. Recorded in TechnicalDebt: setlocale is not supported, so the structure never changes.

Note: open PR #545 re-exports this NID from libSceAmpr; this PR implements the libc import the affected titles reference.

Tested

Windows 11, MinGW-w64 GCC 15.2.0 (WinLibs r7), Ninja, Release, BUILD_TESTING=ON: guest_locale passes (asserts every field value, a stable pointer across calls and that errno is untouched). python3 -I tools/check_conventions.py --base origin/main and tools/check_test_registration.py pass. Titles were not run.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source (none added)
  • Generic behaviour, not specific to one title
  • Depends on: none
  • AI-assisted: yes

@github-actions github-actions Bot added the intake paused Closed while PR intake is limited to authors with at least 10 PRs merged into main label Oct 11, 2026
@github-actions

Copy link
Copy Markdown

Thank you for your interest in the project! We are sorry, but we cannot accept more PRs while we work through the existing backlog. This PR has been automatically closed and labeled "intake paused". This is not a judgment of the quality of your changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

intake paused Closed while PR intake is limited to authors with at least 10 PRs merged into main

Projects

None yet

Development

Successfully merging this pull request may close these issues.

libc: implement localeconv (PPSA99600, PPSA17641); branch and PR #3245 ready

2 participants