summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-01-25LibJS: Implement a nearly empty Intl.RelativeTimeFormat objectTimothy Flynn
This adds plumbing for the Intl.RelativeTimeFormat object, constructor, and prototype.
2022-01-25LibJS: Convert Intl.NumberFormat to use Unicode::StyleTimothy Flynn
2022-01-25LibJS: Convert Intl.DisplayNames to use Unicode::StyleTimothy Flynn
2022-01-25LibJS+LibUnicode: Convert Intl.ListFormat to use Unicode::StyleTimothy Flynn
Remove ListFormat's own definition of the Style enum, which was further duplicated by a generated ListPatternStyle enum with the same values.
2022-01-25LibUnicode: Add helper methods to convert a Style to and from a stringTimothy Flynn
This conversion is duplicated a few times in our Intl implementation, so let's just define these once and be done with it.
2022-01-25LibUnicode: Remove the Unicode::Style::Numeric valueTimothy Flynn
It is unused.
2022-01-25LibTimeZone+Userland: Rename current_time_zone to system_time_zoneTimothy Flynn
This renames the current implementation of current_time_zone to system_time_zone to more clearly indicate what it is. Then reimplements current_time_zone to return whatever was set up by tzset, falling back to UTC if something went awry, for convenience.
2022-01-25Userland: Invoke tzset in applications that care about time zonesTimothy Flynn
In most applications, we invoke tzset once at startup for now. Most of these are short lived and don't need to know about time zone changes. The exception is the ClockWidget in the taskbar. Here, we invoke tzset each time we update the system time. This way, any time zone changes can take effect immediately.
2022-01-25LibC: Ensure most time tests run under UTCTimothy Flynn
This ensures these tests pass even if the user has changed the system time zone away from UTC.
2022-01-25LibC: Ensure tzname and related fields are intializedTimothy Flynn
If a program never invokes tzset, the tzname variable should have system dependent default values.
2022-01-25LibC: Revert localtime_r to use time zone information set by tzsetTimothy Flynn
Now that tzset actually detects time zones, parties interested in time zone offsets should invoke tzset.
2022-01-25LibC: Invoke tzset from time functions required to update time zone infoTimothy Flynn
From POSIX: the ctime(), localtime(), mktime(), strftime(), and strftime_l() functions are required to set timezone information as if by calling tzset() ctime is excluded here because it invokes localtime, so there's no need to invoke tzset twice.
2022-01-25LibC: Implement tzset with time zone awareness in accordance with POSIXTimothy Flynn
2022-01-25LibC: Define the POSIX TZNAME_MAX limitTimothy Flynn
POSIX defines this as the "Maximum number of bytes supported for the name of a timezone (not of the TZ variable)." It must have a minimum value of _POSIX_TZNAME_MAX (6). The longest time zone name in the TZDB is about 40 chars, so 64 is chosen here for a little wiggle room, and to round up to a power of 2.
2022-01-25LibTimeZone: Handle time zones which begin the year in daylight savingsTimothy Flynn
2022-01-25LibTimeZone: Add an API to retrieve both daylight and standard offsetsTimothy Flynn
This API will also include the formatted name of the time zone, with respect for DST (e.g. EST vs EDT for America/New_York).
2022-01-25LibTimeZone: Slightly refactor the generated DST rule finding methodTimothy Flynn
This just splits up the method to find the active DST rule for specified time and time zone. This is to allow re-using the now split-off function in upcoming commits.
2022-01-25LibTimeZone: Parse and generate time zone abbreviation format stringsTimothy Flynn
For example, today, America/New_York has the format string "E%sT" and uses US DST rules. Those rules indicate the %s should be replaced by a "D" in daylight time and "S" in standard time.
2022-01-25timezone: Add an option to list all time zonesTimothy Flynn
2022-01-25Kernel: Fix index calculation in NVMeQueue submit_sync_sqe functionPankaj Raghav
There was a bug while calculating the next index in submit_sync_sqe function. Use the NVMeQueue's class variable m_qdepth instead of the hardcoded IO_QUEUE_SIZE.
2022-01-25AK: Standardize the behaviour of GenericLexer::consume_until overloadsIdan Horowitz
Before this commit all consume_until overloads aside from the Predicate one would consume (and ignore) the stop char/string, while the Predicate overload would not, in order to keep behaviour consistent, the other overloads no longer consume the stop char/string as well.
2022-01-25AK: Add a consume_until(StringView) overload to GenericLexerIdan Horowitz
This allows us to skip a strlen call.
2022-01-25AK: Implement `HashTable::try_ensure_capacity`, as used in `HashMap`James Puleo
This was used in `HashMap::try_ensure_capacity`, but was missing from `HashTable`s implementation. No one had used `HashMap::try_ensure_capacity` before so it went unnoticed!
2022-01-25CrashReporter: Dispatch backtrace progress callbacks on the main threadAndreas Kling
We can't fiddle with GUI widgets off the main thread, so let's use Core::EventLoop::deferred_invoke() to dispatch the work. The progress bar doesn't visibly update yet, but at least we're not crashing anymore.
2022-01-25LibThreading: Invoke BackgroundAction completions on origin event loopAndreas Kling
We now capture the origin thread's current event loop when setting up a BackgroundAction and then invoke the on_complete callback on that same event loop.
2022-01-25LibCore: Make Core::s_main_event_loop actually globalAndreas Kling
This was accidentally per-TU, as it was declared "static" in the header.
2022-01-25Kernel: Replace String with NonnullOwnPtr<KString> in sys$getkeymapIdan Horowitz
2022-01-25Base: Add Arabic characters to font Katica Regular 10Lady Gegga
0606, 0607, 0609, 060A, 060B, 060C, 060D, 061B, 0621, 0622, 0623, 0624, 0625, 0626, 0627, 0628, 0629, 062A, 062B, 062C, 062D, 062E, 062F, 0630, 0631, 0632, 0633, 0634, 0635, 0636, 0637, 0638, 0639, 063A, 063B, 063C, 0640, 0641, 0642, 0643, 0644, 0645, 0646, 0647, 0648, 0649, 064A, 064B, 064D, 064E, 0650, 0651, 0652, 0653, 0654, 0655, 0656, 0657, 0658, 0659, 065A, 065B, 0660, 0661, 0662, 0663, 0664, 0665, 0666, 0667, 0668, 0669, 066D, 066E, 067A, 067B, 067C, 067D, 067E, 067F, 0680, 068A, 068C, 068D, 068E, 068F, 0690, 0692, 0694, 0696, 0697, 0698, 0699, 069A, 069B, 069C, 069D, 069E, 069F, 06A1, 06A2, 06A3, 06A4, 06A5, 06A6, 06B1, 06B2, 06B5, 06B6, 06B7, 06B8, 06D2, 06D3, 06F0, 06F1, 06F2, 06F3, 06F4, 06F5, 06F6, 06F7, 06F8, 06F9 https://www.unicode.org/charts/PDF/U0600.pdf
2022-01-25tree: Port to LibMainNames4Noobs
2022-01-25rmdir: Port to LibMainAriel Abreu
2022-01-25rm: Port to LibMainAriel Abreu
2022-01-25md: Port to LibMainFabian INGREMEAU
2022-01-25mv: Port to LibMainFabian INGREMEAU
2022-01-25tail: Port to LibMainFabian INGREMEAU
2022-01-25LibJS: Correct FormatTimeZoneOffsetString arg in CreateTemporalTimeZoneLinus Groh
This is an editorial change in the Temporal spec (accidentally marked normative). See: https://github.com/tc39/proposal-temporal/commit/3039c98
2022-01-24less: Fix memory leak when scrolling to EOFRummskartoffel
2022-01-24LibPDF: Make Filter::decode() return ErrorOrSam Atkins
2022-01-24AK+Userland: Make AK::decode_base64 return ErrorOrSam Atkins
2022-01-24AK+Userland: Make AK::decode_hex() return ErrorOrSam Atkins
This lets us propagate the reason why it failed up to the caller. :^)
2022-01-24Everywhere: Convert ByteBuffer factory methods from Optional -> ErrorOrSam Atkins
Apologies for the enormous commit, but I don't see a way to split this up nicely. In the vast majority of cases it's a simple change. A few extra places can use TRY instead of manual error checking though. :^)
2022-01-24LibJS/Tests: Enable Number.isInteger() test that now passesLinus Groh
2022-01-24LibJS: Update ShadowRealm AO parameter declaration notationsLinus Groh
This is an editorial change in the ShadowRealm spec. See: https://github.com/tc39/proposal-shadowrealm/commit/f5013fe
2022-01-24LibJS: Let WrappedFunction inherit target name and lengthLinus Groh
This is a normative change in the ShadowRealm spec. See: https://github.com/tc39/proposal-shadowrealm/commit/b73a1dc
2022-01-24LibJS: Implement the SetFunctionLength AOLinus Groh
2022-01-24LibJS: Implement the SetFunctionName AOLinus Groh
2022-01-24LibJS: Fix the execution context for the bytecode interpreterdavidot
Because we now push an execution context when creating the "normal" interpreter without valid environments we have to check for that case as well when running the bytecode interpreter.
2022-01-24LibEDID: Fix handling extension mapsTom
We weren't properly iterating the extension blocks and thought we encountered an unexpected extension map block, when we really should have just skipped over it.
2022-01-24LibEDID: Fix calculating height and refresh rate for interlaced modesTom
The vertical values need to be multiplied with 2 for interlaced modes.
2022-01-24Kernel: Don't send crash signal to process itself when it has no handlerAndreas Kling
If there's nobody listening for the crash signal, fall back to the normal crash path where we get some debug output about what happened. Thanks to Idan for suggesting the fix.
2022-01-24Browser: Convert file-downloading code to Core::Stream :^)Sam Atkins