summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-02-02LibCore: Put all classes in the Core namespace and remove the leading CAndreas Kling
I've been wanting to do this for a long time. It's time we start being consistent about how this stuff works. The new convention is: - "LibFoo" is a userspace library that provides the "Foo" namespace. That's it :^) This was pretty tedious to convert and I didn't even start on LibGUI yet. But it's coming up next.
2020-02-02Terminal: Remove an unused variableAndreas Kling
2020-02-02LibGUI: Add GHBoxLayout and GVBoxLayout convenience classesAndreas Kling
2020-02-02DisplayProperties: Highlight current wallpaper settings.asliturk
Fixes #556.
2020-02-02LibGUI: Save current wallpaper setting to WindowManager.ini.asliturk
2020-02-02WindowServer: Fix for Changing Screen Resolution Resets.Hüseyin ASLITÜRK
Fixes #816.
2020-02-02Minesweeper: Make sure first tile revealed is always blank (#1164)pfg
2020-02-02Userland: useradd utilityJesse Buhagiar
This commit implements the `useradd` utility that is found on most, if not all *NIX systems. It allows the root user to add new users to the password file found in `/etc/passwd`, thereby making it easier to manipulate the file.
2020-02-02LibC: Implement `putpwent()`Jesse Buhagiar
It was previously impossible to (correctly) put an entry into the password file via libc. This patch implements the functionality to do so.
2020-02-02LibC: Implement append modes for `fopen()`Jesse Buhagiar
Previously, `fopen()` didn't contain an implementation for the append modes, even though the Kernel supports it via `O_APPEND`. This patch rectifies that by implementing them so an assert is no longer thrown.
2020-02-02LibC: Move `FILE` definition to bits/FILE.hJesse Buhagiar
There are some headers in libc that require us to have definitions, such as `FILE` available to us (such as in `pwd.h`). It is bad practice to include the entirety of `stdio.h`, so it makes more sense to put `FILE` into it's own header.
2020-02-02Meta: Claim copyright on files added by meAndrew Kaster
Demos/DynamicLink, LibC/cxxabi.cpp, and LibELF/ELFDynamic*.[cpp/h]
2020-02-02FileManager: Scope actions to the window where they logically belongAndreas Kling
Most actions should not be app global. This fixes unwanted activations while another window is active.
2020-02-02LibGUI: Make GAction scoped to its CObject parent (widget or window)Andreas Kling
Unparented GActions are still parented to the application like before, making them globally available. This makes it possible to have actions that work whenever a specific window is active, no matter which widget is currently focused. :^)
2020-02-02LibCore: is<CObject>(object) should not default to trueAndreas Kling
Otherwise we'll lie about anything that doesn't implement is<T>() and think it's indeed a T.
2020-02-02Kernel: Detect devices when enumerating the PCI busLiav A
Instead of making each driver to enumerate the PCI bus itself, PCI::Initializer will call detect_devices() to do one enumeration of the bus.
2020-02-02Partition Table: Change Script filesLiav A
From now we can use build-image-grub.sh to generate a virtual disk with the supported partition schemes - MBR, GPT & EBR (MBR + Extended partitions).
2020-02-02Partition Table: Add support for Extended partitionsLiav A
Now also MBR configurations with extended partitions are supported.
2020-02-02Partition Table: Replace __attribute__((packed)) with [[gnu::packed]]Liav A
2020-02-01Ports: Add klong language portAndreas Kling
Patch contributed by nut (casaca on IRC)
2020-02-01Ports: Add ed port (#1159)Brian Callahan
2020-02-01LibCore: Fix CArgsParser build on my host machineAndreas Kling
2020-02-01AK: #ifdef out the contents of SharedBuffer on other platformsAndreas Kling
2020-02-01Documentation: Explain compilation of small changes and portsOliver Kraitschy
2020-02-01Partition Table: Allow to boot with a partition number higher than 4Liav A
This is true currently only to GUID partitions, Booting with an MBR partition is still limited to partition numbers 1-4.
2020-02-01Partition Table: Replace __attribute__((packed)) with [[gnu::packed]]Liav A
2020-02-01LibC: The exec() family of functions should not search "." by defaultAndreas Kling
We should only execute the filename verbatim if it contains a slash (/) character somewhere. Otherwise, we need to look through the entries in the PATH environment variable. This fixes an issue where you could easily "override" system programs by placing them in a directory you control, and then waiting for someone to come there and run e.g "ls" :^) Test: LibC/exec-should-not-search-current-directory.cpp
2020-02-01AK: Always inline StringView(const char*)Andreas Kling
Also use strlen() instead of manually walking the string. This allows GCC to optimize away the strlen() entirely for string literals. :^)
2020-02-01Kernel: Add -fbuiltin to Kernel CXXFLAGSAndreas Kling
This allows the compiler to assume some helpful things, like strlen() not modifying global memory and thus being a safe inlinable thing.
2020-02-01LibPthread: Disable debug spam by defaultAndreas Kling
2020-02-01AK: Add some integer overloads to JsonObjectSerializerAndreas Kling
This avoids constructing a temporary JsonValue just to append an int.
2020-02-01Kernel: Add memory scrubbing in slab_alloc() and slab_dealloc()Andreas Kling
These now scrub allocated and freed memory like kmalloc()/kfree() was already doing.
2020-02-01Kernel: Finalizer should not go back to sleep if there's more to doAndreas Kling
Before putting itself back on the wait queue, the finalizer task will now check if there's more work to do, and if so, do it first. :^) This patch also puts a bunch of process/thread debug logging behind PROCESS_DEBUG and THREAD_DEBUG since it was unbearable to debug this stuff with all the spam.
2020-02-01Kernel: Add crash logging heuristic for uninitialized kmalloc()/kfree()Andreas Kling
Since we scrub both kmalloc() and kfree() with predictable values, we can log a helpful message when hitting a crash that looks like it might be a dereference of such scrubbed data.
2020-02-01Kernel: Allow short writes to DoubleBufferAndreas Kling
DoubleBuffer is the internal buffer for things like TTY, FIFO, sockets, etc. If you try to write more than the buffer can hold, it will now do a short write instead of asserting. This is likely to expose issues at higher levels, and we'll have to deal with them as they are discovered.
2020-02-01Kernel: Make Inode::lookup() return a RefPtr<Inode>Andreas Kling
Previously this API would return an InodeIdentifier, which meant that there was a race in path resolution where an inode could be unlinked in between finding the InodeIdentifier for a path component, and actually resolving that to an Inode object. Attaching a test that would quickly trip an assertion before. Test: Kernel/path-resolution-race.cpp
2020-02-01WindowServer: make menus wrap verticallyOliver Kraitschy
This commit adds vertical wrap to menus. The first item is focused if Key_Down is pressed on the last item and the last item is focused if Key_up is pressed on the first item.
2020-01-31Piano: Rewrite applicationWilliam McPherson
Goals: - Switch to a more typical LibGUI arrangement - Separate GUI (MainWidget) and audio (AudioEngine) - Improve on existing features while retaining the same feature set Improvements: - Each GUI element is a separate widget - The wave (WaveWidget) scales with the window - The piano roll (RollWidget) scales horizontally and scrolls vertically - The piano (KeysWidget) fits as many notes as possible - The knobs (KnobsWidget) are now sliders - All mouse and key events are handled in constant time - The octave can be changed while playing notes - The same note can be played with the mouse, keyboard and roll at the same time, and the volume of the resulting note is scaled accordingly - Note frequency constants use the maximum precision available in a double
2020-01-31AK: Add FixedArray::data()William McPherson
2020-01-31Kernel: Add key_code_countWilliam McPherson
2020-01-30Kernel: LocalSocket should fail with EADDRINUSE for already-bound filesAndreas Kling
2020-01-30Kernel: Disallow empty ranges in munmap/mprotect/madviseAndreas Kling
2020-01-30Kernel: Add some sanity assertions in RangeAllocator::deallocate()Andreas Kling
We should never end up deallocating an empty range, or a range that ends before it begins.
2020-01-30Kernel: Range::contains() should reject ranges with 2^32 wrap-aroundAndreas Kling
2020-01-30Kernel: Reject non-user address ranges in mmap/munmap/mprotect/madviseAndreas Kling
There's no valid reason to allow non-userspace address ranges in these system calls.
2020-01-30Kernel: Copy "stack" and "mmap" bits when splitting a RegionAndreas Kling
2020-01-30Kernel: Address validation helpers should take size_t, not ssize_tAndreas Kling
2020-01-30Kernel: Some more int => size_t in NetworkAdapter and subclassesAndreas Kling
2020-01-30SystemMonitor: Unveil /devSergey Bugaev
DevicesModel wants to match devices supported by the kernel to device nodes in /dev.
2020-01-30Kernel: Dump backtrace when denying a path because of a veilSergey Bugaev
This will make it much easier to see why a process wants to open the file.