Commit Graph

40 Commits

Author SHA1 Message Date
Kevin Lange
8996ccb592 Merge terminal settings commands into esh
They are now part of the built-in set.

set scale [n]
set size  [w] [h]
set alpha [0 or 1]
2012-10-13 20:17:29 -07:00
Kevin Lange
66a35ba224 Separate out keyboard stuff into a library.
Eventually this will be used to do ALL keyboard interpreting, so we can
ditch the kernel map and support proper input and special keys.
2012-10-08 22:33:46 -07:00
Kevin Lange
5249138dcd Environment variables, integrated with newlib.
* Patched crt0 to support a pre_main
* pre_main sets up environment variables, can do other things later,
  but then just jumps to main with the same arguments.
* Updated a bunch of apps to pass environment variables around.
2012-10-08 00:17:50 -07:00
Kevin Lange
99b48f72e0 Fix cursor position after tab-tab complete 2012-10-07 20:57:58 -07:00
Kevin Lange
ad6d8f013e Fix some things I missed previously.
- Environment loading in esh was broken.
- I dropped the 'exit' command from esh somewhere along the line.
2012-10-07 20:54:11 -07:00
Kevin Lange
deaa6ad513 Rough support for environment variables
- libc functions not implemented yet
- see `env` for an example of reading variables
- see `esh` for an example of how to set and maintain variables for
  sending to other applications

  Both of the above will be the basis for the libc implementation.
2012-10-07 20:46:35 -07:00
Kevin Lange
272a2a3809 Fix history bugs from previous.
- Fix history scrolling after ^L
- Fix duplicate entry pruning.
2012-10-07 15:58:30 -07:00
Kevin Lange
484cf903cd Fixes for multiline history
(Also fixed a bug with backspace handling in the terminal)
2012-10-07 12:22:39 -07:00
Kevin Lange
b37fa0180f Good catch, ayust 2012-10-07 11:09:51 -07:00
Kevin Lange
609a43c15c Command parser with quotation support. 2012-10-07 11:01:00 -07:00
Kevin Lange
1fba6661f8 reverse-i-search
- Also fix history
2012-10-07 09:34:10 -07:00
Kevin Lange
8374d09c3c Make tab completion slightly better
- Link with the list library.
- Use lists to make match evaluation faster.
2012-10-07 08:45:00 -07:00
Kevin Lange
478e7c31f1 Fill in remaining for tab completion.
This is pretty inefficient...
[ci skip]
2012-10-07 00:18:55 -07:00
Kevin Lange
e496060b3e Fix up tab completion 2012-10-06 23:48:46 -07:00
Kevin Lange
c0b29c365a History and better line editing for esh. 2012-10-06 23:01:39 -07:00
Kevin Lange
07955c83c6 Fix dozens of build warnings and other oddities.
* Finally bring syscall.h up to speed and include all syscalls in the
  syscall module of the C library.
* Remove the third-party obfuscated C demos (we have nyancat, good
  enough)
* Fix userspace apps to build without complaining about undeclared
  strtok_r by disable __STRICT_ANSI__
* Fix .eh_frame by including the proper stuff with libgcc.
2012-09-04 20:27:49 -07:00
Kevin Lange
c88d6dcb4f Add or update the heading comments for user apps.
Adds useful descriptions to ones that were lacking them, updates ones
that were innacurate, etc.
2012-07-06 21:08:28 -07:00
Kevin Lange
e9e4d89ac8 Toolchain installer now does freetype 2012-05-17 11:50:25 -04:00
Kevin Lange
fc00d3f1f9 Terminal improvements 2012-03-16 17:09:00 -05:00
Kevin Lange
73c6171226 Last minute bug fixes 2012-03-08 23:36:40 -06:00
Kevin Lange
d1bb652db3 Various.
[init] Reenable freetype in the Terminal spawned from init
[nyancat] Fix timing and update animations
[esh] Fix bug with child pid collection and signal handling
2012-02-08 15:56:27 -06:00
Kevin Lange
499184718d just some fun 2012-02-08 12:04:03 -06:00
Kevin Lange
9daca33cb1 Minor compilation fixes 2012-02-08 12:01:25 -06:00
Kevin Lange
65fa12f482 SIGNALS 2012-02-08 02:40:44 -06:00
Kevin Lange
06a9125c21 Drop redefs of syscalls 2012-02-04 22:57:03 -06:00
Kevin Lange
dc2badc80e Simple line editing and buffering 2012-01-31 01:25:17 -06:00
Kevin Lange
71298a5c83 Relatively broken local echo support 2012-01-31 00:16:09 -06:00
Kevin Lange
238278c3fc init, get/sethostname 2012-01-30 12:10:53 -06:00
Kevin Lange
db7020cbce [security] Shadow Passwords, whoami, and more
This update includes support for shadow passwords, stored in
/etc/master.passwd, as well as support for an /etc/passwd file
containing user/uid/full name/shell associations, which are used by the
shell to get your username for display purposes, as well as by whoami
for the same reason. The login tool does not yet select the right shell
though this is planned.

* root's password is `toor` (a throwback to older times)
* local's password is `local` (because it's obvious)
2012-01-27 18:04:39 -06:00
Kevin Lange
00d0eb8fac Simple line editing (backspace support) 2012-01-27 13:16:23 -06:00
Kevin Lange
a47fe02224 Directory switching 2012-01-27 13:10:58 -06:00
Kevin Lange
ac8354d805 Add some system calls, plus a fakish /bin/login 2012-01-26 22:46:18 -06:00
Kevin Lange
7682eb6cdf Change error number format in esh 2012-01-25 14:57:27 -06:00
Kevin Lange
a0139691dd Fix the loader/ apps to use fds 2012-01-25 14:41:11 -06:00
Kevin Lange
d73d2e2361 [cmos] Fix userspace clock 2012-01-25 13:50:30 -06:00
Kevin Lange
339b82e10c [massive commit] Userspace terminal.
Completely removes:
* The kernel terminal (both VGA and graphical)
* The kernel ANSI parser (obviously)
* kgets() function
* Dozens of other functions that were made useless

Adds:
* Userspace terminal that should work (relatively) well
* Keyboard device driver (implemented with a "pipe" object)
* Stabalized interrupt interface
* `clear` uses the c library
* All panic screens and kprintf() output goes to the serial line ONLY
* The kernel boots directly into /bin/terminal (no arguments, unless you
  want to add them (such as -f))
2012-01-25 00:19:52 -06:00
Kevin Lange
c54de06083 [esh] Support &, search path 2011-12-07 15:08:40 -06:00
Kevin Lange
fa09f76582 [esh] Handle bad execs 2011-12-06 20:36:40 -06:00
Kevin Lange
dca46fffc4 [sys] wait(pid) 2011-12-06 20:13:20 -06:00
Kevin Lange
d52e73e71e [esh] Esh, the experimental shell 2011-12-06 19:46:35 -06:00