Plan 9 from User Space
Switch branches/tags
Nothing to show
Clone or download
fhs and 0intro fontsrv: copy some fixes from OS X to X11
* Avoid allocating empty images by adding 1 to width/height. This was
  crashing fontsrv. The total width of the subfont image can be zero
  even if the characters are present in the font. For example, all the
  characters in x0300.bit (part of "Combining Diacritical Marks" Unicode
  block) have zero width.
* Make sure U+0000 is always present in the font, otherwise libdraw
  complains with: "stringwidth: bad character set for rune 0x0000 in ..."
* Use the same fallback glyph (pjw face) as OS X. This also fixes a bug
  where advance was set to the total width of subfont instead of the

Update #125 (most likely fixes the crash if in X11)

Change-Id: Icdc2b641b8b0c08644569006e91cf613b4d5477f
Latest commit 48da9bd Jun 22, 2018
Failed to load latest commit information.
acid merge Mar 5, 2012
bin mount, 9pfuse: detect macports installed osxfuse Mar 27, 2018
dict all: remove .cvsignore files Sep 14, 2017
dist all: remove .cvsignore files Sep 14, 2017
face faces for lp. Sep 13, 2005
font font: s/10/11 in ascent for unicode.7x13.font Apr 18, 2016
include 9term, win: work around bsd linker nonsense Jan 6, 2017
lib moveplan9: add missing files Oct 17, 2017
lp all: remove .cvsignore files Sep 14, 2017
mac devdraw: plumb drag-n-dropped files Jun 3, 2015
mail all: remove .cvsignore files Sep 14, 2017
man xd: add -R for runewise dump Oct 1, 2017
ndb ndb/local: remove rsc-specific entries (oops) Jun 4, 2008
news odds and ends Apr 21, 2004
plumb acme: scroll a directory window when navigating if: Oct 22, 2013
postscript all: remove .cvsignore files Sep 14, 2017
proto forgotten files Jan 13, 2005
sky all: remove .cvsignore files Sep 14, 2017
src fontsrv: copy some fixes from OS X to X11 Oct 5, 2018
tmac insert spaces after .?? request names Nov 11, 2008
troff troff: import HB, HI and HX fonts from Plan 9 Jun 15, 2017
unix all: remove .cvsignore files Sep 14, 2017
.gitignore .gitignore: ignore files created for astro(1) and scat(1) Mar 23, 2018
.travis.yml .travis.yml: configure build matrix to build on OS X and Linux (thank… Sep 22, 2017
CHANGES CHANGES: add pointer to web version May 10, 2008 codereview: delete, now using GitHub pull requests Sep 1, 2017
CONTRIBUTORS venti: fix venti graph on 64-bit Jul 23, 2017
INSTALL all: update site from to Sep 1, 2017
LICENSE allow less restricted use of plan9port-specific code Aug 15, 2009
Makefile For annoying people like Uriel. Nov 25, 2005 README: update links Sep 14, 2017
TODO Note 9P2000.u Aug 31, 2005
configure For annoying people like Uriel. Nov 25, 2005
install.txt install.txt: regenerate (9 man 1 intro >install.txt) Dec 2, 2014
rcmain rcmain: use new $termprog variable Aug 13, 2013

This is a port of many Plan 9 libraries and programs to Unix.


To install, run ./INSTALL. It builds mk and then uses mk to run the rest of the installation.

For more details, see install(1), at install.txt in this directory and at


See for more documentation. (Documentation is also in this tree, but you need to run a successful install first. After that, "9 man 1 intro".)

Intro(1) contains a list of man pages that describe new features or differences from Plan 9.

Helping out

If you'd like to help out, great! The TODO file contains a small list.

If you port this code to other architectures, please share your changes so others can benefit.


You can use Git to keep your local copy up-to-date as we make changes and fix bugs. See the git(1) man page here ("9 man git") for details on using Git.


Build Status Coverity Scan Build Status