summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* warnings: fix warnings on newer compilersDan Cross2025-07-245-15/+21
| | | | | | | | | | Mostly turning the crank on fixing simple warnings: arrays, for instance, can never be nil. A couple of pointers should have been initialized to `nil` before being tested. Some logic in `troff` was simplified: basically, an `if` statement had a condition that must have always been true if that section of code were being executed at all.
* config: add $egrepDan Cross2025-07-235-6/+14
| | | | | | | | | | | Introduce a new variable set in $PLAN9/config: $egrep, which is conditionally set to either `egrep` or `grep -E`, based on platform, and use this when we want to invoke `egrep`. This works around the endless warnings from GNU grep stating that `egrep` is deprecated in favor of `grep -E`, when run on e.g. Linux.
* libflate: fiz inflatezlibblockRuss Cox2025-05-081-2/+2
| | | | This has obviously never been run.
* cmd/devdraw: avoid use of X button state fieldRoger Peppe2025-03-291-51/+12
| | | | | | | | | | | | | | | | | | This bug is an intermittent annoyance and does not seem likely to be fixed soon. It means that every so often my acme becomes unusable because it behaves as if a mouse button is permanently set. Avoid that issue by keeping track of mouse button state directly. While we're about it, fix another annoying issue: under Linux the FocusOut event reset the kstate field but not the kbuttons field, meaning that the buttons state could inappropriately persist. This happened occasionally by accident, but was easy to reproduce: with the mouse button held down, drag outside the window and click Alt-Tab to switch away from the window. We see a KeyDown event followed by FocusOut but no KeyUp event. Change-Id: I3708316478c80c41806d7157ae9929c6cd84b662
* devdraw: handle shift of real mouse buttons correctlyRuss Cox2024-06-172-10/+23
|
* lib9: skip buggy S_ISCHR check in disksize on OpenBSDRuss Cox2024-06-151-2/+0
| | | | The portable code is already checking S_ISCHR anyway.
* acme: remove debug printRuss Cox2024-06-151-1/+0
|
* acme: shift button 3 for reverse searchRuss Cox2024-06-159-74/+183
| | | | | An experiment. Let's see if it's any good. Also document the Mac conventions in devdraw(3).
* all: quiet macOS build againRuss Cox2024-06-151-1/+0
|
* tpic: clean upRuss Cox2024-04-065-8/+14
|
* acme: clean up environment after execRuss Cox2024-04-061-0/+9
| | | | Make up for the lack of a real rfork(RFENVG).
* mntgen: import mntgen(4) from Plan 9fgergo2024-01-091-0/+256
| | | | | new file: man/man4/mntgen.4 new file: src/cmd/mntgen.c
* ramfs: update to workfgergo2023-12-301-5/+4
| | | | | | | ramfs: update to work erealloc(p, 0) is handled correctly removed fprint(2, ... removed assert()
* page: fix viewing of graphicsRuss Cox2023-09-131-2/+4
| | | | 940f1fd6af broke page on non-PDF files.
* acme: have Dump save both low and high DPI fontnamesmatheuristic2023-09-051-4/+13
| | | | | | | | Instead of only saving a window's currently displayed font's name to the dump file, have Acme's Dump command save that window's combined low DPI and high DPI font names when both are available. See 9fans/plan9port#630
* libframe: Match the color of tickjapanoise2023-08-231-1/+1
| | | | | | | Previously the vertical bar in tick was always black; fine if you use the standard black-on-white for everything, but any attempt to add a dark mode ran into trouble with the tick being half hard-coded black, half the new text color.
* libdraw: fix subfont scalingmatheuristic2023-08-211-1/+1
| | | | | A subfont with n chars has n+1 Fontchars, so scalesubfont() needs to scale all n+1 info entries.
* libregexp: allow up to 127 captured subexpressions in one regexpIgor Burago2023-03-311-1/+1
| | | | 128 counting with the entire expression match ($0).
* plumber: increase NMATCHSUBEXP up to 100Igor Burago2023-03-311-1/+1
| | | | | Thus up to two-digit subexpression match variables are supported ($1 through $99) in addition to the entire expression match ($0).
* plumber: use strtoul to parse subexpression match variable substitutionsIgor Burago2023-03-301-24/+9
|
* plumber: increase NMATCHSUBEXP up to libregexp's NSUBEXPIgor Burago2023-03-301-1/+1
|
* plumber: allow multi-digit subexpression match variable substitutionsIgor Burago2023-03-301-2/+23
|
* plumber: parametrize the number of stored match pattern subexpressionsIgor Burago2023-03-302-9/+15
|
* devdraw: Fix mouse wheel scrolling in 1-tick increments on macOSzakkor2023-03-291-3/+3
|
* acme: allow larger paste amountsRuss Cox2023-01-061-1/+1
|
* page: scale ppi on high-res displaysRuss Cox2023-01-061-8/+8
| | | | Also fix wording of -w warning.
* rio: check the return value of malloc(3)Tom Schwindl2022-09-123-0/+14
|
* fix double free bug, simplify error handling, reduce X11 callsMvA2022-09-111-63/+58
|
* fix double free bug, simplify error handling, reduce X11 calls, improve styleMvA2022-09-111-100/+74
|
* fix indentationDerek Stevens2022-09-071-1/+1
|
* acme/wind.c: redraw window body with bg color if too small for a single ↵Derek Stevens2022-09-071-0/+1
| | | | line; ref #10
* factotum: fix log read inuse bugTw2022-09-073-0/+3
| | | | | | When log reading exits, inuse flag should be cleared. Signed-off-by: Tw <wei.tan@intel.com>
* acme: accept paths with spaces in the 'name' ctl messageIgor Burago2022-09-071-1/+1
| | | | | | | | As it is allowed to use spaces in file names set interactively through the tag since 7b1c85f, do not reject names with spaces in the 'name' ctl message either. Fixes #559.
* plumber: allow underscores in variable names in plumbing rulesIgor Burago2022-09-071-10/+19
| | | | Fixes #561.
* plumber: set match variables past the first non-matching subexpressionIgor Burago2022-09-071-6/+6
| | | | Fixes #563.
* plumber: fail on buffer exhaustion or runaway quotes in string expansionIgor Burago2022-09-061-11/+25
|
* src/cmd: print all usage messages to stderrTom Schwindl2022-09-062-2/+2
| | | | | All utilities print their usage message to stderr, cmp(1) and getflags(8) should do the same.
* troff: support `\~` as an alias for `\ ` (#567)g-branden-robinson2022-08-121-0/+2
| | | | | | | | | | | | | | In groff, Heirloom Doctools troff, and neatroff, the `\~` escape sequence produces an adjustable (paddable) but unbreakable space. mandoc, which does not perform adjustment or render to typesetters, supports the escape sequence as a synonym for `\ `, the same as `\0`. This extension is of long pedigree: groff has supported it for at least 30 years, Heirloom for 17, mandoc for 13, and neatroff for 6. Do the same as mandoc to prevent mis-rendering of documents using this escape sequence. Heirloom Doctools troff, a descendant of Documenter's Workbench troff, would be a good place to look for a compatible implementation of the adjustable semantics for this sequence.
* Fixed a use after free in rio.Karsten Pedersen2022-07-271-1/+2
| | | | Screen was being queried from within a client after it had been free'd.
* upas: don't hardcode path for rc(1)Sören Tempel2022-07-272-1/+4
|
* sam: use get9root instead of duplicating the logicSören Tempel2022-07-271-3/+1
|
* lib9: pass $PLAN9_TARGET via CPP for get9root fallback valueSören Tempel2022-07-273-3/+5
| | | | | Allows this function to always return the proper path in situations where the $PLAN9 environment variable is not set, i.e. a rc login shell.
* factotum: plug a memory leak in apoplufia2022-07-261-0/+1
|
* fontsrv: always compute new height and ascent for the font fileXiao-Yong Jin2022-07-261-9/+14
|
* devdraw/x11: fix modifier key handling for some XkbOptionsXiao-Yong Jin2022-07-261-12/+31
| | | | | | | | | | | | | Certain XkbOptions in X11 would change keysyms for modifier keys between the key press and key release. For example, under the XkbOptions "grp:shifts_toggle", though shift keys remain Shift_L/R when pressed, they become ISO_Group_Next/Prev when released. This behavior makes devdraw unable to detect the release event correctly and as a result mouse button 1 click always interpreted as button 3 event after a shift key is used.
* Bail out if convW2M(...) indicates failure.Igor Böhm2022-07-261-1/+2
|
* libdraw: fix out-of-bounds access to local buffer in event.c:startrpc()Igor Böhm2022-07-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function `startrpc()` stack allocates a local buffer of size 100: ```c static Muxrpc* startrpc(int type) { uchar buf[100]; ^^^^^^^^ Wsysmsg w; w.type = type; convW2M(&w, buf, sizeof buf); return muxrpcstart(display->mux, buf); } ``` The function `convW2M()` is called passing `buf`. That function accesses `buf` out-of-bounds: ```c uint convW2M(Wsysmsg *m, uchar *p, uint n) { ... case Tcursor2: PUT(p+6, m->cursor.offset.x); PUT(p+10, m->cursor.offset.y); memmove(p+14, m->cursor.clr, sizeof m->cursor.clr); memmove(p+46, m->cursor.set, sizeof m->cursor.set); PUT(p+78, m->cursor2.offset.x); PUT(p+82, m->cursor2.offset.y); memmove(p+86, m->cursor2.clr, sizeof m->cursor2.clr); memmove(p+214, m->cursor2.set, sizeof m->cursor2.set); p[342] = m->arrowcursor; ^^^^^^ ``` To fix the issue the size of local variable `buf` is increased from 100 to 512 to avoid out-of-bounds array access.
* fossil: fix EOF detection when reading 9P messageFazlul Shahriar2022-07-261-3/+2
| | | | | | | | | When the 9P connection is closed, reads on the connection will keep returning 0. So, fossil ends up looping forever, trying to read a 9P message, consuming 100% CPU. The fix interprets 0 bytes read as EOF. Reproduce by killing the 9pserve process serving the fossil service, or by listening on tcp and using 9p(1).
* deroff: fix out-of-bounds access if runes above 0X80 are inside EQ clausesmmnmnnmnmm2022-07-261-1/+1
|
* trim button & modbutton imagesAndriy Symonovych2022-07-261-3/+1
|