summaryrefslogtreecommitdiff
path: root/LibC/string.cpp
AgeCommit message (Collapse)Author
2019-06-07LibC: Run clang-format on everything.Andreas Kling
2019-05-16LibC: Implement str{n}casecmpRobin Burchell
2019-05-03LibC: Add strcoll() and strxfrm().Andreas Kling
These are obviously not locale-aware implementations, but rather really just strcmp() and strcpy() with different names. This makes vim build and run :^)
2019-04-23Put assertions behind a DEBUG flag to make it easy to build without them.Andreas Kling
2019-04-23Do a pass of compiler warning fixes.Andreas Kling
This is really making me question not using 64-bit integers more.
2019-03-25LibGUI+Kernel: Add a GLock class (userspace mutex.)Andreas Kling
It's basically a userspace port of the kernel's Lock class. Added gettid() and donate() syscalls to support the timeslice donation feature we already enjoyed in the kernel.
2019-02-26LibC: Make errno codes be #defines instead of enum values.Andreas Kling
It turns out that a lot of 3rd party software does things like: #ifdef EINTR ... #endif This won't work if EINTR is an enum. So much for that nice idea.
2019-02-26Compat work towards porting vim.Andreas Kling
2019-02-26More compat work.Andreas Kling
Move syscall to int 0x82 since using int 0x80 was kinda prone to fork bombs when building things on Linux. :^)
2019-02-24LibC: A bunch of compat work towards porting GCC.Andreas Kling
2019-02-22Switch over to building everything with i686-elf-g++.Andreas Kling
2019-02-08LibC: Implement enough missing stuff to get bash-5.0 running. :^)Andreas Kling
2019-02-07Add a fast memcpy() using MMX when we're moving >= 1KB.Andreas Kling
This is a nice speedup for WindowServer. I'll eventually have to do this with SSE but the kernel doesn't support SSE yet so this is it for now.
2019-02-03Get nyancat nyanning in Serenity.Andreas Kling
I found a cute program that renders an animated nyancat in the terminal. This patch adds enough hackery to get it working correctly. :^)
2019-02-03LibC: strdup() forgot to allocate space for the null character.Andreas Kling
2019-02-03LibC: Implement various things to get GNU bc building and running.Andreas Kling
Looks like that's all we needed, and bc now runs. :^)
2019-02-01LibC: Add some things needed to build GNU bc.Andreas Kling
This patch adds vprintf(), sig_atomic_t, random() and strdup(). bc doesn't build yet, but it will.
2019-01-31Big, possibly complete sweep of naming changes.Andreas Kling
2019-01-23LibC: Support backwards copy in memmove().Andreas Kling
2019-01-15Let's do dword-at-a-time memcpy() and memset() in userspace as well.Andreas Kling
Also fix a dumb bug that showed up when I was memsetting something other than zeroes.
2018-11-17Various stubs while trying to get an old coreutils to build.Andreas Kling
2018-11-11Add a naive /bin/fgrep for testing pipes.Andreas Kling
2018-11-11Rage hacking to get bash to run. It finally runs. So cool! :^)Andreas Kling
2018-11-09Fix all current build warnings in LibC.Andreas Kling
2018-11-06Add strsignal() and improve sharing signal numbers between LibC and kernel.Andreas Kling
2018-11-06Add sys_nerr and sys_errlist.Andreas Kling
Also keep the canonical errno list in LibC for now. The kernel gets it from there. This makes building 3rd party code easier. ..also fix broken strchr().
2018-11-05More random compat hacking towards getting bash to build.Andreas Kling
I'm now at the build stage where it complains about a bajillion missing symbols. This is a good place to be!
2018-11-05Lots of minor compat stuff while seeing if bash would build.Andreas Kling
We're quite far from bash building, but we'll get there eventually!
2018-11-05Tiny LibC things.Andreas Kling
2018-10-31Enough compatibility work to make figlet build and run!Andreas Kling
I ran out of steam writing library routines and imported two BSD-licensed libc routines: sscanf() and getopt(). I will most likely rewrite them sooner or later. For now I just wanted to see figlet running.
2018-10-31More LibC portability work while trying to get figlet building.Andreas Kling
2018-10-28Canonicalize the path used by sh.Andreas Kling
With a bunch of LibC work to support the feature. LibC now initializes AK::StringImpl by default. It's now fine to use AK in LibC/Userland! :^)
2018-10-26Implement sys$chdir() and teach sh+ls to cd around and browse different dirs.Andreas Kling
2018-10-26Add memcpy() and strcmp() to LibC.Andreas Kling
2018-10-26Add sys$gethostname and /bin/hostnameAndreas Kling
2018-10-25Implement errno in LibC.Andreas Kling
This also meant I had to implement BSS (SHT_NOBITS) sections in ELFLoader. I also added an strerror() so we can print out what the errors are.
2018-10-23Lots of hacking:Andreas Kling
- Turn Keyboard into a CharacterDevice (85,1) at /dev/keyboard. - Implement MM::unmapRegionsForTask() and MM::unmapRegion() - Save SS correctly on interrupt. - Add a simple Spawn syscall for launching another process. - Move a bunch of IO syscall debug output behind DEBUG_IO. - Have ASSERT do a "cli" immediately when failing. This makes the output look proper every time. - Implement a bunch of syscalls in LibC. - Add a simple shell ("sh"). All it can do now is read a line of text from /dev/keyboard and then try launching the specified executable by calling spawn(). There are definitely bugs in here, but we're moving on forward.