Commit Graph

2936 Commits

Author SHA1 Message Date
lufia 8ff39da062 src/cmd/rc: import rc syntax `delim{cmd} for splitting commands from 9atom
Co-authored-by: <ori@eigenstate.org>
2025-07-27 09:55:45 -04:00
Dan Cross b2fc88d60a SunOS: silence some warnings
Give `-Wformat=0` on illumos/Solaris so that the build does not
complain about `execlp` not having a sentinel (it's nil).  Also
fix an integer size issue when casting to a void pointer.
2025-07-25 18:46:52 +00:00
Dan Cross 9d2e0d31f7 DragonFly: fix build
Fix the build for DragonFlyBSD.
2025-07-25 19:02:59 +00:00
Dan Cross 0bc66bfb3d libthread: remove check for LinuxThreads
libthread had code in `_pthreadinit` to test for LinuxThreads,
and error if it was in use.  This hasn't been relevant since
Linux 2.6, and I can't imagine there are many people trying to
build (recent) plan9port on systems that old.

Unfortunately, this code violated aliasing rules, and compilers
were complaining about it.  But, since it likely hasn't had much
relevance in 20ish years, we can probably just remove it.
2025-07-25 13:06:53 -04:00
Dan Cross 156e745be9 all: remove need for `-fcommon`
Use `extern` where appropriate so that we can remove `-fcommon`
on macOS and others.  On macOS, `-fcommon` generates a number of
linker warnings.

I've tested building on macOS, Linux, FreeBSD, NetBSD, OpenBSD
and illumos.  I am not in a position to test on AIX or other
more esoteric platforms, however.
2025-07-25 12:25:11 -04:00
Dan Cross 1e6e30e91e rio: proper prototypes in `fns.h`
Use proper function prototypes in `fns.h`, that include argument
type information.
2025-07-25 11:58:36 -04:00
Dan Cross 655f7c3184 all: clean up misleading indentation warnings
Misleading indentation warnings are actually useful, as they
will occasionally reveal actual bugs (cf the apple `goto fail`
security bug from a few years ago).  Newer versions of clang
(at least) are more aggressive about warnings in this regard,
which has exposed a few warnings that are annoying.  However,
they are easy to address.
2025-07-25 11:20:03 -04:00
Dan Cross 5a9ced10ee sort: rename kcmp to keycmp
Fixes: #648
Fixes: #655
2025-07-24 16:35:15 +00:00
Dan Cross 4089e29e89 warnings: fix warnings on newer compilers
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.
2025-07-24 15:45:31 +00:00
Dan Cross 564d45b5a5 config: add $egrep
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.
2025-07-23 19:44:54 +00:00
Russ Cox df9b195ebf libflate: fiz inflatezlibblock
This has obviously never been run.
2025-05-08 13:29:20 -04:00
Roger Peppe 9da5b44513 cmd/devdraw: avoid use of X button state field
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
2025-03-29 11:23:26 -04:00
Russ Cox a2567fcac9 devdraw: handle shift of real mouse buttons correctly 2024-06-17 09:28:40 -04:00
Russ Cox e9cbe46fe6 lib9: skip buggy S_ISCHR check in disksize on OpenBSD
The portable code is already checking S_ISCHR anyway.
2024-06-15 22:15:06 -04:00
Russ Cox 211de84701 acme: remove debug print 2024-06-15 22:10:55 -04:00
Russ Cox 0c79c32675 acme: shift button 3 for reverse search
An experiment. Let's see if it's any good.
Also document the Mac conventions in devdraw(3).
2024-06-15 10:57:45 -04:00
Russ Cox 60ca2be037 all: quiet macOS build again 2024-06-15 10:57:45 -04:00
Russ Cox b1b88c75fd tpic: clean up 2024-04-06 11:13:59 -04:00
Russ Cox d5b2552b95 acme: clean up environment after exec
Make up for the lack of a real rfork(RFENVG).
2024-04-06 11:13:24 -04:00
fgergo 897625ff9b mntgen: import mntgen(4) from Plan 9
new file:   man/man4/mntgen.4
new file:   src/cmd/mntgen.c
2024-01-09 15:25:19 -05:00
fgergo f8681acb37
ramfs: update to work
ramfs: update to work

erealloc(p, 0) is handled correctly
removed fprint(2, ...
removed assert()
2023-12-30 08:58:44 -05:00
Russ Cox 984c2824e3 page: fix viewing of graphics
940f1fd6af broke page on non-PDF files.
2023-09-13 10:48:18 -04:00
matheuristic dfbafb68e2 acme: have Dump save both low and high DPI fontnames
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
2023-09-05 12:55:40 -04:00
japanoise 65c090346a libframe: Match the color of tick
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.
2023-08-23 14:47:08 -04:00
matheuristic a36e66f0d2 libdraw: fix subfont scaling
A subfont with n chars has n+1 Fontchars, so scalesubfont() needs to
scale all n+1 info entries.
2023-08-21 11:38:17 -04:00
Igor Burago cc4571fec6 libregexp: allow up to 127 captured subexpressions in one regexp
128 counting with the entire expression match ($0).
2023-03-31 11:50:53 -04:00
Igor Burago 727ce0e123 plumber: increase NMATCHSUBEXP up to 100
Thus up to two-digit subexpression match variables are supported
($1 through $99) in addition to the entire expression match ($0).
2023-03-31 08:17:47 -04:00
Igor Burago a4d35dc3fd plumber: use strtoul to parse subexpression match variable substitutions 2023-03-30 10:44:30 -04:00
Igor Burago 0790296f73 plumber: increase NMATCHSUBEXP up to libregexp's NSUBEXP 2023-03-30 10:44:30 -04:00
Igor Burago 6c0efecd13 plumber: allow multi-digit subexpression match variable substitutions 2023-03-30 10:44:30 -04:00
Igor Burago 760cf86705 plumber: parametrize the number of stored match pattern subexpressions 2023-03-30 10:44:30 -04:00
zakkor 0392f49cfc devdraw: Fix mouse wheel scrolling in 1-tick increments on macOS 2023-03-29 13:13:42 -04:00
Russ Cox 43f5af9c8d acme: allow larger paste amounts 2023-01-06 12:04:17 -05:00
Russ Cox 940f1fd6af page: scale ppi on high-res displays
Also fix wording of -w warning.
2023-01-06 12:04:17 -05:00
Tom Schwindl ffbdd1aa20 rio: check the return value of malloc(3) 2022-09-12 10:35:36 -04:00
MvA 846f724983 fix double free bug, simplify error handling, reduce X11 calls 2022-09-11 09:55:17 -04:00
MvA 3e764832bc fix double free bug, simplify error handling, reduce X11 calls, improve style 2022-09-11 09:55:17 -04:00
Derek Stevens 52be2761ae fix indentation 2022-09-07 12:24:01 -04:00
Derek Stevens 0a846f5f0f acme/wind.c: redraw window body with bg color if too small for a single line; ref #10 2022-09-07 12:24:01 -04:00
Tw 9dab36f2af factotum: fix log read inuse bug
When log reading exits, inuse flag should be cleared.

Signed-off-by: Tw <wei.tan@intel.com>
2022-09-07 09:34:32 -04:00
Igor Burago c57b71966e acme: accept paths with spaces in the 'name' ctl message
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.
2022-09-07 09:32:08 -04:00
Igor Burago 29fae81fb7 plumber: allow underscores in variable names in plumbing rules
Fixes #561.
2022-09-07 09:31:36 -04:00
Igor Burago 4f801be055 plumber: set match variables past the first non-matching subexpression
Fixes #563.
2022-09-07 09:30:40 -04:00
Igor Burago e4b913866b plumber: fail on buffer exhaustion or runaway quotes in string expansion 2022-09-06 13:21:23 -04:00
Tom Schwindl a4af25bc0d src/cmd: print all usage messages to stderr
All utilities print their usage message to stderr,
cmp(1) and getflags(8) should do the same.
2022-09-06 13:15:36 -04:00
g-branden-robinson 93f8143600
troff: support `\~` as an alias for `\ ` (#567)
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.
2022-08-12 23:37:28 -04:00
Karsten Pedersen 0ebf279d89 Fixed a use after free in rio.
Screen was being queried from within a client after it had been free'd.
2022-07-27 10:19:26 -04:00
Sören Tempel 45124b23d2 upas: don't hardcode path for rc(1) 2022-07-27 10:15:51 -04:00
Sören Tempel c53230037a sam: use get9root instead of duplicating the logic 2022-07-27 10:15:51 -04:00
Sören Tempel 521fc08180 lib9: pass $PLAN9_TARGET via CPP for get9root fallback value
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.
2022-07-27 10:15:51 -04:00