commit a9b3443

ohmu  ·  2026-09-13 01:51:31 +0300 MSK
parent 0b78add
cleaned the repo; added new option in config; fixed 'win' shell bug; fixed install.sh; added own readme and configuration manual
62 files changed,  +455, -452
A acme.1
R acme.c
R addr.c
R buff.c
R cols.c
R dat.h
R disk.c
R ecmd.c
R edit.c
R edit.h
R elog.c
R exec.c
R file.c
R fns.h
R fsys.c
R logf.c
R look.c
R mkfile
R regx.c
R rows.c
R scrl.c
R text.c
R time.c
R util.c
R wind.c
R xfid.c
R src/cmd/acme/LICENSE => LICENSE
+0, -0
+27, -96
  1@@ -1,112 +1,43 @@
  2-# acme2k
  3-![a](img/a.png)
  4-### ACME INTERNATIONAL COMPILED EDITORS
  5+# acme3k
  6 
  7-#### THEY EDIT LIKE HELL.
  8-```
  9-   No editor made, pretty much anywhere,
 10-
 11-surpasses our Acme in shape, material or finish.
 12-```
 13-solid forged of unsigned int pieces of best wrought C, linked at the binary; tag line is made of one piece of code, compiled with -funroll-loops to the the rest of the window column and warranted with a [permissive license](src/cmd/acme/LICENSE). text window has sufficient refactoring done to insure stability and prevent SEGFAULTing; has ug, but perfectly written shell: [rc](http://doc.cat-v.org/plan_9/4th_edition/papers/rc); acme is linted and debugged by a special compiler so that there are no functions that return structures or integer and floating numbers in object code not converted to known formats and byte orders; [config.h](src/cmd/acme/config.h) should be perfectly tempered by the user or it will fuck up. mkfiles are straight and true, so you will have no trouble on account of acme returning cryptic compiler errors and not compiling.
 14-
 15-ready thyself for thine bodieth utmost horrrifiength challengeth and read more about [acme](http://acme.cat-v.org/)
 16-
 17-## acme2k features
 18-
 19-![a1](img/a1.png)
 20->*who needs syntax highlighting when this fine piece of work purrs and shows that these fangs got all kinds of shades of visceral strewn around, yet in finite enough of quantities to forbid you from not appreciating its scarcity, elevating it from a mere editor to a sublime Rothko, while emacs sinks in it's kitschy aesthetics, no matter how hard the themes try to salvage that bloated-out-of-proportions Titanic...*
 21-
 22-+ a centralized `config.h`-header heavily inspired by suckless school of software design philosophy; allowing customization of software specifically prior to its compilation
 23-
 24-  + autoindent, swapscrollbars, fonts and the `acme2k` colorscheme modifiable by the user, or shared by a community of likemined `acme2k`-enthusiasts, allowing for a personalized and/or collaborative  look and feel.
 25-    + 14 elements to define your very own colors for. simply breathtaking. i do say, wow.
 26-
 27-  + the so-called bartflag ( = *window focus not following the mouse pointer*) removed as a runtime flag and moved to a configurable option in `config.h`. ive also gone ahead and set it to **TRUE** on default, since mouse accidentally moving and changing the focus from the tag window, it occupying a rather limited area, to the middle of the text and editing the file in question by accident, seemed to be a common complaint online and a general nuisance for me.
 28-
 29-+ no zero-sum game between the mouse and the keyboard. balancing the options so you are not doomed to pick up the mouse as soon as you've overstepped the boundaries of keybindings
 30-
 31-  + arrow keys navigate through text up one letter and down one letter instead of scrolling seemingly indiscriminate amount of lines, making you take your time finding where you were supposed to be at that very moment.
 32-
 33-  + `ctrl+c`, `ctrl+x`, `ctrl+v` for snarfing, cutting and pasting selected text; `ctrl+z` for undo and `ctrl+y` for redo.
 34-
 35-  + `home` and `end` move the cursor to the start or to the end of the current line respectively as do the original keybindings `ctrl+a` and `ctrl+e`. (originally intended to remove them, and i still might if i find better uses for those shortcuts.)
 36+A modern, usable fork of [acme2k](https://github.com/...), itself a fork of
 37+[plan9port](https://github.com/9fans/plan9port)'s acme.
 38 
 39-  + `delete` works as delete
 40+## Differences from acme2k
 41 
 42-  + 'ctrl+l' select all 
 43+- **Runtime configuration** via `~/.acmerc` — no recompilation, only restart.
 44+- **Themes** via `@include`, so colors and fonts can live in separate files.
 45+- **Extra keybindings**: arrow keys, Home/End, Ctrl+C/X/V/Z/Y, Delete.
 46+- **Newcol / Newrow** toggle via `newcolnewrow`.
 47+- **Cool column buttons** and **cool scrollbar background** as eye candy.
 48+- **Show/hide dotfiles** in directory windows.
 49 
 50-+ the end ... ?
 51+## Requirements
 52 
 53-# brass tacks (the serious business)
 54-## dependencies
 55-`acme2k` depends on `plan9port` which can be found [here on github](https://github.com/9fans/plan9port) or on your local repository. i know debian has stripped *plan9*-userpace called `9base` but i wouldn't roll the dice with this working with only it as a dependency. don't know; haven't a clue, now's your chance to feel useful and test it out. i mean if you feel like it.
 56+- [plan9port](https://github.com/9fans/plan9port) with `/usr/local/plan9/bin`
 57+  in `$PATH` (for `rc`, `win`, `9p`, etc.).
 58+- plan9port toolchain (`9c`, `9l`).
 59 
 60-## installation
 61-after following the instructions in your `$PLAN9`-folder to run `./INSTALL` and `mk`'ing every goddamn *plan9*-userspace application there happens to be ported, you can move right on to mangle the tightly-knit web these applications form with this very github project you've atleast been eyein':
 62+## Building
 63 
 64-![a2](img/a2.png)
 65->*that low contrast base16-ocean soothes your senses with a subtle balance of peace, quiet and solitude to your zen-like coding session, where it is just you, your workflow and fingertips dancing on the keyboard in a polyrhythmic, primitive thumping fashion. truly gaia has blessed you with this editor.*
 66-
 67-next, you should proceed to replace the `plan9port`'s defined `$PLAN9/src/cmd` with the `acme2k`'s `$GITPATH/src/cmd`.
 68-
 69-now you can choose whether you want the *highly experimental* patched `fontsrv/x11.c`, which overrides the hardcoded dpi for font rendering etc. or would you rather leave the `fontsrv` untouched by a patch, that at worst can cause stability issues since i haven't had the chance to put it through the same wear and tear as the `plan9port`-devs have to the vanilla version.
 70-
 71-So to sum what you could do for example:
 72-
 73-```bash
 74-git clone https://github.com/karahobny/acme2k.git; cd acme2k
 75-cp -r src/cmd/acme $PLAN9/src/cmd/acme
 76-cp -r src/cmd/fontsrv $PLAN9/src/cmd/fontsrv # optional if you
 77-# were too busy to skim through the preceeding passage,
 78-# you just might be a goddamn millenial
 79+```sh
 80+mk clean
 81+mk
 82+./install.sh
 83 ```
 84 
 85-you may need to build from the `INSTALL`-file located in the `$PLAN9`-root, but usually its enough to build from your recently replaced `acme`-folder, obviously not before editing the contents of `config.h` to your likings, it should be commented more than enough to explain what every little variable or **#define** does.
 86+`install.sh` copies `o.acme` to `/usr/local/bin/acme`.
 87 
 88-ohmu UPD: colors now in theme.h, for no conflicts while including in files.
 89+## Configuration
 90 
 91- `$GITPATH/colors` are just some example colorschemes i've made, fiddled with and been juggling between.
 92+See `man acme` (section `CONFIGURATION`). Short version:
 93 
 94-```bash
 95-cd $PLAN9/src/cmd/acme; mk install
 96-cd $PLAN9/src/cmd/fontsrv; mk install # optional part for
 97-# if you want the patched fontsrv/x11.c. common sense rly           
 98 ```
 99-
100-### config.h
101-`config.h` includes all the neccesary color and font modifications you just need to `mk install` it after every time you modify it, strongly inspired by suckless design philosophy of software.  feel free to read more about it [here](https://suckless.org/philosophy).
102-
103-#### fonts
104-you run `fontsrv -p .` to list all the available fonts from X11 to fontsrv; basically its only limited to your installed TrueType-fonts, so if you wish to use a bitmap font, make sure you specifically have the `.ttf` available; and then use the fonts in a format like this for example:
105-```bash
106-"/mnt/font/[listed font]/[font size][a(ntialias)/no a(antialias)]/font"
107-
108-"/mnt/font/Monaco/9a/font",
109-"/mnt/font/GohuFont/9/font",
110+~/.acmerc:
111+    shell /bin/rc
112+    autoindent 1
113+    @include .acmethemes/ghibli
114 ```
115-in this case the first option would stand for Monaco size 9 antialiased, the second for GohuFont size 9 aliased, ofc; or you can use the full path to your plan9 converted .font-file, found in this git repositorys `font/` directory.
116-
117-insert two fonts into `config.h`'s font-array separating them with a comma. the first one is treated as a proportional width font and is used everywhere in `acme`, and by extension `acme2k`, by default. the second one can be activated for a specific window by executing `Font` from its tag window.
118-
119-![a3](img/a3.png)
120->*dont be shackled by dark hues and saturated pinks. make Glenda, the Bunny, proud by showing off the team colors aka the Rio Windowing Systems. "little black-on-white makes a little rob pike smile. when? every now and then!", or so ive been told.*
121-
122-#### colors
123-colors need to be in the format of `0x*rgb hex color code*FF` without the prefixed hashtag. i'd suggest just to experiment what all the **#defines** mean but to start you with something `C_TAGBG` means tag window background color. `C_TXTBG` means text window backgorund color. `...HLBG/FG` means highlighted text background and foreground color etc. i've taken the liberty to comment all the color variations and what they affect on [config.h's noticeable comment section](src/cmd/acme/config.h).
124-
125-## but WHAT can I do
126-definetly check out [TODO](docs/TODO.md) and feel free to chime in what would you like to see as a feature, add an issue or clone the repo and edit [TODO.md](docs/TODO.md) and push it to the upstream, if all you want to do is add feature ideas. for bug fixes and coding features its better to contact me at:
127-````
128-karahobny at gmail dot com
129-````
130-or branch and send a pull request so i can check it out, dont worry ill always tip and youll get your name on the contributors list and you can for all i care, add your name on a comment preceding the codeblock in question, you know p. much what ever that doesnt harm the readability of the code, im all about you people having the respect you deserve for having partaken in such a sweet project.
131-
132-Also, do check out **#acme2k** @ **freenode** to contribute and to take part in this community for us to build something together or to raise issues personally.
133-
134-## license (or whats the other one ive never heard of)
135-yeah no one's really heard of that other one, it was just a fucked up situation where *plan9* guys' hands were forced by lawyers to use that for some reason. *plan 9* also got gpl'd for some time but that version is meaningless and a joke afaik; up still here in github if it somehow jollies your gollies.
136 
137-project is licensed as following (if ive understood correctly and this is allowed), the original unmodified `plan9port` being under [**lucent public license**](docs/LICENSE.LUCENT) which specifically disallows any warranty, like every goddamn license in the whole goddamn universe and allows for me to sublicense it as i see fit so ive seen fit to specifically license my modest modifications under [**mit license**](docs/LICENSE.MIT), simply because it's more straightforward a permissive license and nobody really has to second guess what its trying to allow/disallow a developer and/or consumer to do.
138+All keys, defaults, and the `@include` mechanism are documented in the man page.
139 
140-ive yet to have had to think about accepting contributions from other licenses than **lucent** or **mit** since this is still in its faltering baby steps, but id still hope if you would think about trying to avoid having a deck of licenses to show instead of actual features in our repository.
A acme.1
+205, -0
  1@@ -0,0 +1,205 @@
  2+.TH ACME 1
  3+.SH NAME
  4+acme3k - a modern, useful(and usable) replacement of acme2k
  5+.SH SYNOPSIS
  6+.B acme
  7+[
  8+.B -c
  9+.I config
 10+]
 11+[
 12+.B -m
 13+.I mtpt
 14+]
 15+[
 16+.B -l
 17+.I dumpfile
 18+]
 19+[
 20+.B -w
 21+.I winsize
 22+]
 23+[
 24+.I file ...
 25+]
 26+.SH DESCRIPTION
 27+...
 28+.SH CONFIGURATION
 29+Acme reads its configuration from
 30+.I $HOME/.acmerc
 31+by default, or from the file given with the
 32+.B -c
 33+flag.
 34+Lines that do not consist of two whitespace-separated tokens are ignored. There is no dedicated comment character; ", #, or any other prefix works as long as the line does not parse as a key value pair.
 35+.PP
 36+A line of the form
 37+.B @include
 38+.I file
 39+causes acme to read
 40+.I file
 41+as if its contents appeared at that point.
 42+If
 43+.I file
 44+does not begin with a
 45+.BR / ,
 46+it is first tried relative to the current working directory,
 47+then relative to
 48+.IR $HOME .
 49+Included files may themselves contain
 50+.B @include
 51+directives.
 52+.PP
 53+Keys are looked up in order: acme scans the configuration file from
 54+top to bottom, descending into
 55+.B @include
 56+files as it encounters them.  The first matching key wins.  This means
 57+a key defined before an
 58+.B @include
 59+takes precedence over the same key inside the included file, and a
 60+key defined after an
 61+.B @include
 62+takes precedence only if the included file does not define it.
 63+.PP
 64+This makes it natural to keep a base configuration in
 65+.I .acmerc
 66+and pull in colors and fonts from a theme file:
 67+.PP
 68+.nf
 69+.ta 8n
 70+" base settings
 71+@include .acmethemes/ghibli
 72+shell /bin/rc
 73+autoindent 1
 74+.fi
 75+.PP
 76+The following keys are recognized:
 77+.TP
 78+.B shell
 79+Shell used for executing commands.  Default:
 80+.IR /usr/local/plan9/bin/rc .
 81+.TP
 82+.B pastels
 83+Boolean.  Enable pastel background colors.  Default: 1.
 84+.TP
 85+.B mix
 86+Color mixed into pastel backgrounds, in RGBA hex.  Default: 0xFFFFFFFF.
 87+.TP
 88+.B root
 89+Root background color.  Default: 0xFFFFFFFF.
 90+.TP
 91+.B border
 92+Border color.  Default: 0x000000FF.
 93+.TP
 94+.B tagbg
 95+Tag background.  Default: 0xAAFFFFFF.
 96+.TP
 97+.B tagfg
 98+Tag foreground.  Default: 0x000000FF.
 99+.TP
100+.B htagbg
101+Highlighted tag background.  Default: 0x9EEEEEFF.
102+.TP
103+.B htagfg
104+Highlighted tag foreground.  Default: 0x000000FF.
105+.TP
106+.B txtbg
107+Text background.  Default: 0xFFFFAAFF.
108+.TP
109+.B txtfg
110+Text foreground.  Default: 0x000000FF.
111+.TP
112+.B htxtbg
113+Highlighted text background.  Default: 0xEEEE9EFF.
114+.TP
115+.B htxtfg
116+Highlighted text foreground.  Default: 0x000000FF.
117+.TP
118+.B winbtn
119+Window button color.  Default: 0x8888CCFF.
120+.TP
121+.B colbtn
122+Column button color.  Default: 0x8888CCFF.
123+.TP
124+.B tmpbtn
125+Temp button color.  Default: 0x000099FF.
126+.TP
127+.B scrlbg
128+Scrollbar background.  Default: 0x99994CFF.
129+.TP
130+.B scrlfg
131+Scrollbar foreground.  Default: 0xFFFFAAFF.
132+.TP
133+.B scrlbord
134+Scrollbar border.  Default: 0x99994CFF.
135+.TP
136+.B btn2hl
137+Button 2 highlight.  Default: 0xAA0000FF.
138+.TP
139+.B btn3hl
140+Button 3 highlight.  Default: 0x006600FF.
141+.TP
142+.B mainfont
143+Main font path.  Default:
144+.IR /lib/font/bit/lucsans/euro.8.font .
145+.TP
146+.B monofont
147+Monospace font path.  Default:
148+.IR /lib/font/bit/lucm/unicode.9.font .
149+.TP
150+.B dumppath
151+Where to dump the window layout.  Default:
152+.IR /tmp/acme.dump .
153+.TP
154+.B autoindent
155+Boolean.  Auto-indent new lines.  Default: 1.
156+.TP
157+.B swpscrllbtns
158+Boolean.  Swap scroll buttons 1 and 3.  Default: 0.
159+.TP
160+.B clicktofocus
161+Boolean.  Click to focus (bartflag).  Default: 1.
162+.TP
163+.B colcount
164+Number of initial columns.  Default: 2.
165+.TP
166+.B openarg
167+Boolean.  Open files given on the command line.  Default: 1.
168+.TP
169+.B coolcolbtn
170+Boolean.  Cool column buttons.  Default: 0.
171+.TP
172+.B coolscrollbg
173+Boolean.  Cool scrollbar background.  Default: 0.
174+.TP
175+.B showdotfiles
176+Boolean.  Show dotfiles in directory windows.  Default: 1.
177+.TP
178+.B newcolnewrow
179+Boolean.  Newcol creates a new column (0) or column with row (1).  Default: 1.
180+.SH EXAMPLES
181+A minimal
182+.I .acmerc :
183+.PP
184+.nf
185+.ta 8n
186+shell /usr/bin/rc
187+mainfont /lib/font/bit/lucsans/euro.8.font
188+monofont /lib/font/bit/lucm/unicode.9.font
189+.fi
190+.PP
191+A configuration split into a base file and a theme:
192+.PP
193+.nf
194+.ta 8n
195+" ~/.acmerc
196+@include .acmethemes/ghibli
197+shell /bin/rc
198+autoindent 1
199+
200+" ~/.acmethemes/ghibli
201+mainfont /tmp/fonts/gallant12x22/16/font
202+monofont /tmp/fonts/gallant12x22/16/font
203+root     FFFFEA
204+tagbg    FFFFEA
205+tagfg    000000
206+.fi
R src/cmd/acme/acme.c => acme.c
+3, -2
 1@@ -112,6 +112,9 @@ threadmain(int argc, char *argv[])
 2     mkdir(mtpt, 0700);
 3 	
 4 	initconfig(customconfigpath);
 5+	
 6+	if(acmeshell)
 7+		putenv("SHELL", acmeshell);
 8 
 9 	quotefmtinstall();
10 	fmtinstall('t', timefmt);
11@@ -119,8 +122,6 @@ threadmain(int argc, char *argv[])
12 	cputype = getenv("cputype");
13 	objtype = getenv("objtype");
14 	home = getenv("HOME");
15-	if(acmeshell && *acmeshell == '\0')
16-		acmeshell = nil;
17 	p = getenv("tabstop");
18 	if(p != nil){
19 		maxtab = strtoul(p, nil, 0);
R src/cmd/acme/addr.c => addr.c
+0, -0
R src/cmd/acme/buff.c => buff.c
+0, -0
R src/cmd/acme/cols.c => cols.c
+0, -0
R src/cmd/acme/dat.h => dat.h
+0, -0
R src/cmd/acme/disk.c => disk.c
+0, -0
+0, -6
1@@ -1,6 +0,0 @@
2-## thanks to
3-### whether they like it or not
4-+ [AndreasBriese](https://github.com/AndreasBriese/) [for his handy arrow key modifications to text.c]
5-+ [frederich?](https://github.com/frederich) [this neat .diff [`fontsrv x11.c`](https://www.snip2code.com/Snippet/713870/Better-font-rendering-in-Acme--)]
6-+ [rtrn](https://github.com/rtrn) [for these [readily converted fonts](https://github.com/rtrn/plan9fonts)]
7-+ you?
+0, -257
  1@@ -1,257 +0,0 @@
  2-Copyright © 2000-2009 Lucent Technologies.  All Rights Reserved.
  3-Portions Copyright © 2001-2008 Russ Cox
  4-Portions Copyright © 2008-2009 Google Inc.
  5-
  6-===================================================================
  7-
  8-The bulk of this software is derived from Plan 9 and is thus distributed
  9-under the Lucent Public License, Version 1.02, reproduced below.
 10-
 11-There are a few exceptions: libutf, libfmt, and libregexp are distributed
 12-under simpler BSD-like boilerplates.  See the LICENSE files in those
 13-directories.  There are other exceptions, also marked with LICENSE files
 14-in their directories or marked at the top of the file.
 15-
 16-The bitmap fonts in the font/luc, font/lucm, font/lucsans, and font/pelm
 17-directory are copyright B&H Inc. and distributed under more restricted
 18-terms under agreement with B&H.  See the NOTICE file in those directories.
 19-
 20-===================================================================
 21-
 22-Lucent Public License Version 1.02
 23-
 24-THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS PUBLIC
 25-LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE
 26-PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
 27-
 28-1. DEFINITIONS
 29-
 30-"Contribution" means:
 31-
 32-  a. in the case of Lucent Technologies Inc. ("LUCENT"), the Original
 33-     Program, and
 34-  b. in the case of each Contributor,
 35-
 36-     i. changes to the Program, and
 37-    ii. additions to the Program;
 38-
 39-    where such changes and/or additions to the Program were added to the
 40-    Program by such Contributor itself or anyone acting on such
 41-    Contributor's behalf, and the Contributor explicitly consents, in
 42-    accordance with Section 3C, to characterization of the changes and/or
 43-    additions as Contributions.
 44-
 45-"Contributor" means LUCENT and any other entity that has Contributed a
 46-Contribution to the Program.
 47-
 48-"Distributor" means a Recipient that distributes the Program,
 49-modifications to the Program, or any part thereof.
 50-
 51-"Licensed Patents" mean patent claims licensable by a Contributor
 52-which are necessarily infringed by the use or sale of its Contribution
 53-alone or when combined with the Program.
 54-
 55-"Original Program" means the original version of the software
 56-accompanying this Agreement as released by LUCENT, including source
 57-code, object code and documentation, if any.
 58-
 59-"Program" means the Original Program and Contributions or any part
 60-thereof
 61-
 62-"Recipient" means anyone who receives the Program under this
 63-Agreement, including all Contributors.
 64-
 65-2. GRANT OF RIGHTS
 66-
 67- a. Subject to the terms of this Agreement, each Contributor hereby
 68-    grants Recipient a non-exclusive, worldwide, royalty-free copyright
 69-    license to reproduce, prepare derivative works of, publicly display,
 70-    publicly perform, distribute and sublicense the Contribution of such
 71-    Contributor, if any, and such derivative works, in source code and
 72-    object code form.
 73-    
 74- b. Subject to the terms of this Agreement, each Contributor hereby
 75-    grants Recipient a non-exclusive, worldwide, royalty-free patent
 76-    license under Licensed Patents to make, use, sell, offer to sell,
 77-    import and otherwise transfer the Contribution of such Contributor, if
 78-    any, in source code and object code form. The patent license granted
 79-    by a Contributor shall also apply to the combination of the
 80-    Contribution of that Contributor and the Program if, at the time the
 81-    Contribution is added by the Contributor, such addition of the
 82-    Contribution causes such combination to be covered by the Licensed
 83-    Patents. The patent license granted by a Contributor shall not apply
 84-    to (i) any other combinations which include the Contribution, nor to
 85-    (ii) Contributions of other Contributors. No hardware per se is
 86-    licensed hereunder.
 87-    
 88- c. Recipient understands that although each Contributor grants the
 89-    licenses to its Contributions set forth herein, no assurances are
 90-    provided by any Contributor that the Program does not infringe the
 91-    patent or other intellectual property rights of any other entity. Each
 92-    Contributor disclaims any liability to Recipient for claims brought by
 93-    any other entity based on infringement of intellectual property rights
 94-    or otherwise. As a condition to exercising the rights and licenses
 95-    granted hereunder, each Recipient hereby assumes sole responsibility
 96-    to secure any other intellectual property rights needed, if any. For
 97-    example, if a third party patent license is required to allow
 98-    Recipient to distribute the Program, it is Recipient's responsibility
 99-    to acquire that license before distributing the Program.
100-
101- d. Each Contributor represents that to its knowledge it has sufficient
102-    copyright rights in its Contribution, if any, to grant the copyright
103-    license set forth in this Agreement.
104-
105-3. REQUIREMENTS
106-
107-A. Distributor may choose to distribute the Program in any form under
108-this Agreement or under its own license agreement, provided that:
109-
110- a. it complies with the terms and conditions of this Agreement;
111-
112- b. if the Program is distributed in source code or other tangible
113-    form, a copy of this Agreement or Distributor's own license agreement
114-    is included with each copy of the Program; and
115-
116- c. if distributed under Distributor's own license agreement, such
117-    license agreement:
118-
119-      i. effectively disclaims on behalf of all Contributors all warranties
120-         and conditions, express and implied, including warranties or
121-         conditions of title and non-infringement, and implied warranties or
122-         conditions of merchantability and fitness for a particular purpose;
123-     ii. effectively excludes on behalf of all Contributors all liability
124-         for damages, including direct, indirect, special, incidental and
125-         consequential damages, such as lost profits; and
126-    iii. states that any provisions which differ from this Agreement are
127-         offered by that Contributor alone and not by any other party.
128-
129-B. Each Distributor must include the following in a conspicuous
130-   location in the Program:
131-
132-   Copyright (C) 2003, Lucent Technologies Inc. and others. All Rights
133-   Reserved.
134-
135-C. In addition, each Contributor must identify itself as the
136-originator of its Contribution in a manner that reasonably allows
137-subsequent Recipients to identify the originator of the Contribution.
138-Also, each Contributor must agree that the additions and/or changes
139-are intended to be a Contribution. Once a Contribution is contributed,
140-it may not thereafter be revoked.
141-
142-4. COMMERCIAL DISTRIBUTION
143-
144-Commercial distributors of software may accept certain
145-responsibilities with respect to end users, business partners and the
146-like. While this license is intended to facilitate the commercial use
147-of the Program, the Distributor who includes the Program in a
148-commercial product offering should do so in a manner which does not
149-create potential liability for Contributors. Therefore, if a
150-Distributor includes the Program in a commercial product offering,
151-such Distributor ("Commercial Distributor") hereby agrees to defend
152-and indemnify every Contributor ("Indemnified Contributor") against
153-any losses, damages and costs (collectively"Losses") arising from
154-claims, lawsuits and other legal actions brought by a third party
155-against the Indemnified Contributor to the extent caused by the acts
156-or omissions of such Commercial Distributor in connection with its
157-distribution of the Program in a commercial product offering. The
158-obligations in this section do not apply to any claims or Losses
159-relating to any actual or alleged intellectual property infringement.
160-In order to qualify, an Indemnified Contributor must: a) promptly
161-notify the Commercial Distributor in writing of such claim, and b)
162-allow the Commercial Distributor to control, and cooperate with the
163-Commercial Distributor in, the defense and any related settlement
164-negotiations. The Indemnified Contributor may participate in any such
165-claim at its own expense.
166-
167-For example, a Distributor might include the Program in a commercial
168-product offering, Product X. That Distributor is then a Commercial
169-Distributor. If that Commercial Distributor then makes performance
170-claims, or offers warranties related to Product X, those performance
171-claims and warranties are such Commercial Distributor's responsibility
172-alone. Under this section, the Commercial Distributor would have to
173-defend claims against the Contributors related to those performance
174-claims and warranties, and if a court requires any Contributor to pay
175-any damages as a result, the Commercial Distributor must pay those
176-damages.
177-
178-5. NO WARRANTY
179-
180-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
181-PROVIDED ON AN"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
182-KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
183-WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
184-OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
185-responsible for determining the appropriateness of using and
186-distributing the Program and assumes all risks associated with its
187-exercise of rights under this Agreement, including but not limited to
188-the risks and costs of program errors, compliance with applicable
189-laws, damage to or loss of data, programs or equipment, and
190-unavailability or interruption of operations.
191-
192-6. DISCLAIMER OF LIABILITY
193-
194-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
195-ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
196-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
197-WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
198-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
199-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
200-DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
201-HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
202-
203-7. EXPORT CONTROL
204-
205-Recipient agrees that Recipient alone is responsible for compliance
206-with the United States export administration regulations (and the
207-export control laws and regulation of any other countries).
208-
209-8. GENERAL
210-
211-If any provision of this Agreement is invalid or unenforceable under
212-applicable law, it shall not affect the validity or enforceability of
213-the remainder of the terms of this Agreement, and without further
214-action by the parties hereto, such provision shall be reformed to the
215-minimum extent necessary to make such provision valid and enforceable.
216-
217-If Recipient institutes patent litigation against a Contributor with
218-respect to a patent applicable to software (including a cross-claim or
219-counterclaim in a lawsuit), then any patent licenses granted by that
220-Contributor to such Recipient under this Agreement shall terminate as
221-of the date such litigation is filed. In addition, if Recipient
222-institutes patent litigation against any entity (including a
223-cross-claim or counterclaim in a lawsuit) alleging that the Program
224-itself (excluding combinations of the Program with other software or
225-hardware) infringes such Recipient's patent(s), then such Recipient's
226-rights granted under Section 2(b) shall terminate as of the date such
227-litigation is filed.
228-
229-All Recipient's rights under this Agreement shall terminate if it
230-fails to comply with any of the material terms or conditions of this
231-Agreement and does not cure such failure in a reasonable period of
232-time after becoming aware of such noncompliance. If all Recipient's
233-rights under this Agreement terminate, Recipient agrees to cease use
234-and distribution of the Program as soon as reasonably practicable.
235-However, Recipient's obligations under this Agreement and any licenses
236-granted by Recipient relating to the Program shall continue and
237-survive.
238-
239-LUCENT may publish new versions (including revisions) of this
240-Agreement from time to time. Each new version of the Agreement will be
241-given a distinguishing version number. The Program (including
242-Contributions) may always be distributed subject to the version of the
243-Agreement under which it was received. In addition, after a new
244-version of the Agreement is published, Contributor may elect to
245-distribute the Program (including its Contributions) under the new
246-version. No one other than LUCENT has the right to modify this
247-Agreement. Except as expressly stated in Sections 2(a) and 2(b) above,
248-Recipient receives no rights or licenses to the intellectual property
249-of any Contributor under this Agreement, whether expressly, by
250-implication, estoppel or otherwise. All rights in the Program not
251-expressly granted under this Agreement are reserved.
252-
253-This Agreement is governed by the laws of the State of New York and
254-the intellectual property laws of the United States of America. No
255-party to this Agreement will bring a legal action under this Agreement
256-more than one year after the cause of action arose. Each party waives
257-its rights to a jury trial in any resulting litigation.
258-
+0, -21
 1@@ -1,21 +0,0 @@
 2-MIT License
 3-
 4-Copyright (c) 2017 Jan-Patrick Bollström
 5-
 6-Permission is hereby granted, free of charge, to any person obtaining a copy
 7-of this software and associated documentation files (the "Software"), to deal
 8-in the Software without restriction, including without limitation the rights
 9-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10-copies of the Software, and to permit persons to whom the Software is
11-furnished to do so, subject to the following conditions:
12-
13-The above copyright notice and this permission notice shall be included in all
14-copies or substantial portions of the Software.
15-
16-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22-SOFTWARE.
+0, -17
 1@@ -1,17 +0,0 @@
 2-### todo
 3-+ .diff -file for easier application for some?
 4-  + `diff -Naur` compared to `plan9port`-project's files.
 5-  + modified files so far on `src/cmd/acme/`:
 6-    + `acme.c`
 7-    + `mkfile`
 8-    + `config.h`
 9-    + `text.c`
10-  + also featuring `src/cmd/fontsrv/x11.c`
11-+ fontsrv-modification? what is up with that? can i make it better
12-+ cursor color and shape (it defaults still to black in center even though the blocks seem to follow the text foreground color rule)
13-+ ctrl+shift+z = redo; delete = deletes current character see: `$PLAN9/include/keyboard.h` and `$PLAN9/src/cmd/acme/text.c`.
14-+ look into grabbing just the neccesary parts of acme from plan9port to create a "stand alone complex" of some sort.
15-+ windows-version? not really friendly to the whole compiled from the source idea, which leads me to
16-+ parsing colorscheme at the start of `acme2k` from a config file.  
17-  + `Xlib/Xresources.h` or w/e atleast looked reasonable to me
18-+ add more to do (contribute by adding an issue)
R src/cmd/acme/ecmd.c => ecmd.c
+0, -0
R src/cmd/acme/edit.c => edit.c
+0, -0
R src/cmd/acme/edit.h => edit.h
+0, -0
R src/cmd/acme/elog.c => elog.c
+0, -0
R src/cmd/acme/acmerc.example => examples/acmerc
+2, -1
 1@@ -1,6 +1,6 @@
 2 " settings
 3 
 4-@include .acmethemes/bw
 5+@include .acmethemes/ghibli
 6 
 7 dumppath       /home/glenda/.acme.dump
 8 shell          /bin/rc
 9@@ -11,3 +11,4 @@ clicktofocus   0
10 colcount       1
11 openarg        1
12 showdotfiles   0
13+newcolnewrow   0
+33, -0
 1@@ -0,0 +1,33 @@
 2+# Acme theme based on wal-generated colors
 3+# Converted from .Xresources
 4+
 5+mainfont       /tmp/fonts/Iosevka-Oui/16a/font
 6+monofont       /tmp/fonts/Iosevka-Oui/16a/font
 7+
 8+coolcolbtn   1
 9+coolscrollbg 0
10+
11+pastels        0
12+
13+root           1E1E1E
14+tagbg          1E1E1E
15+tagfg          C7CCD1
16+htagbg         C7CCD1
17+htagfg         1E1E1E
18+
19+txtbg          1E1E1E
20+txtfg          C7CCD1
21+htxtbg         C7CCD1
22+htxtfg         1E1E1E
23+
24+winbtn         C7CCD1
25+colbtn         C7CCD1
26+tmpbtn         747C84
27+scrlbg         747C84
28+scrlfg         1c2023
29+scrlbord       1E1E1E
30+
31+border         C7CCD1
32+
33+btn2hl         C7AE95
34+btn3hl         C7AE95
R colors/blood => examples/acmethemes/blood
+3, -1
 1@@ -1,7 +1,7 @@
 2 mainfont       /tmp/fonts/gallant12x22/16/font
 3 monofont       /tmp/fonts/gallant12x22/16/font
 4 
 5-coolcolbtn   1
 6+coolcolbtn   2
 7 
 8 pastels 0
 9 
10@@ -21,6 +21,8 @@ winbtn  F55142
11 colbtn  783129
12 tmpbtn  ffffff
13 scrlbg  783129
14+scrlfg	0F0200
15+scrlbord	0F0200
16 
17 border  783129
18 
R colors/bw => examples/acmethemes/bw
+3, -0
1@@ -1,5 +1,8 @@
2 mainfont       /tmp/fonts/Iosevka-Oui/13a/font
3 monofont       /tmp/fonts/Iosevka-Oui/13a/font
4+#mainfont /tmp/fonts/XonyFixed12x24rk/13a/font
5+#monofont /tmp/fonts/XonyFixed12x24rk/13a/font
6+
7 
8 coolcolbtn   1
9 coolscrollbg 1
+33, -0
 1@@ -0,0 +1,33 @@
 2+mainfont       /tmp/fonts/gallant12x22/16/font
 3+monofont       /tmp/fonts/gallant12x22/16
 4+
 5+
 6+coolcolbtn   1
 7+coolscrollbg   1
 8+
 9+pastels 0
10+
11+mix     ffffff
12+
13+root    fcf5ec
14+
15+tagbg   fcf5ec
16+tagfg   5c4a3a
17+htagbg  b08060
18+htagfg  ffffff
19+
20+txtbg   fcf5ec
21+txtfg   5c4a3a
22+htxtbg  b08060
23+htxtfg  ffffff
24+
25+winbtn  6b5445
26+colbtn  8c7a64
27+tmpbtn  8c7a64
28+scrlbg  9c8271
29+scrlfg  9c8271
30+
31+border  8c7a64
32+
33+btn2hl  b08060
34+btn3hl  b08060
R colors/choco => examples/acmethemes/choco
+8, -5
 1@@ -1,9 +1,11 @@
 2-mainfont       /tmp/fonts/Iosevka-Oui/12a/font
 3-monofont       /tmp/fonts/Iosevka-Oui/12a/font
 4+mainfont       /tmp/fonts/XanhMono-Regular/15a/font
 5+monofont       /tmp/fonts/XanhMono-Regular/15a/font
 6 
 7-squarecolbtn   0
 8 
 9-pastels 1
10+coolcolbtn   1
11+coolscrollbg 0
12+
13+pastels 0
14 
15 mix     eaddd0
16 
17@@ -21,8 +23,9 @@ htxtfg  ffffff
18 
19 winbtn  6b5445
20 colbtn  8c7a64
21-tmpbtn  8c7a64
22+tmpbtn  000000
23 scrlbg  9c8271
24+scrlfg  f6efe5
25 
26 border  8c7a64
27 
R colors/cryptos => examples/acmethemes/cryptos
+0, -0
R colors/darkblue => examples/acmethemes/darkblue
+0, -0
R colors/desert => examples/acmethemes/desert
+0, -0
+30, -0
 1@@ -0,0 +1,30 @@
 2+mainfont       /tmp/fonts/gallant12x22/16/font
 3+monofont       /tmp/fonts/gallant12x22/16/font
 4+
 5+coolcolbtn   1
 6+coolscrollbg 0
 7+
 8+pastels        0
 9+
10+root           FFFFEA
11+tagbg          FFFFEA
12+tagfg          000000
13+htagbg         a6b2a2
14+htagfg         FFFFEA
15+
16+txtbg          FFFFEA
17+txtfg          000000
18+htxtbg         a6b2a2
19+htxtfg         FFFFEA
20+
21+winbtn         a6b2a2
22+colbtn         a6b2a2
23+tmpbtn         d1dad0
24+scrlbg         d1dad0
25+scrlfg         FFFFEA
26+scrlbord       a6b2a2
27+
28+border         a6b2a2
29+
30+btn2hl         a6b2a2
31+btn3hl         a6b2a2
R colors/hacker => examples/acmethemes/hacker
+0, -0
+31, -0
 1@@ -0,0 +1,31 @@
 2+mainfont       /tmp/fonts/Iosevka-Oui/13a/font
 3+monofont       /tmp/fonts/Iosevka-Oui/13a/font
 4+
 5+coolcolbtn   1
 6+coolscrollbg 0
 7+
 8+pastels        1
 9+
10+mix            ffffff
11+root           EDE7DF
12+tagbg          EDE7DF
13+tagfg          000000
14+htagbg         f2c4c7
15+htagfg         000000
16+
17+txtbg          EDE7DF
18+txtfg          000000
19+htxtbg         f2c4c7
20+htxtfg         000000
21+
22+winbtn         b7c8b1
23+colbtn         b7c8b1
24+tmpbtn         AAAAAA
25+scrlbg         EDE7DF
26+scrlfg         f4efe8
27+scrlbord       EDE7DF
28+
29+border         000000
30+
31+btn2hl         f2c4c7
32+btn3hl         f2c4c7
+30, -0
 1@@ -0,0 +1,30 @@
 2+mainfont       /tmp/fonts/Iosevka-Oui/13a/font
 3+monofont       /tmp/fonts/Iosevka-Oui/13a/font
 4+
 5+coolcolbtn   0
 6+coolscrollbg 0
 7+
 8+pastels        1
 9+
10+root           f0ebe3
11+tagbg          f0ebe3
12+tagfg          6a5a4a
13+htagbg         c9786e
14+htagfg         f0ebe3
15+
16+txtbg          f0ebe3
17+txtfg          5a6a5a
18+htxtbg         8ab8b0
19+htxtfg         2a3a3a
20+
21+winbtn         c9786e
22+colbtn         e8b088
23+tmpbtn         d8d0c8
24+scrlbg         d8d0c8
25+scrlfg         6a7a6a
26+scrlbord       c9786e
27+
28+border         8ab8b0
29+
30+btn2hl         b0685e
31+btn3hl         6aa8a0
R colors/suckless => examples/acmethemes/suckless
+0, -0
R colors/xxiivv => examples/acmethemes/xxiivv
+0, -0
R src/cmd/acme/exec.c => exec.c
+7, -12
 1@@ -359,10 +359,12 @@ newcol(Text *et, Text *_0, Text *_1, int _2, int _3, Rune *_4, int _5)
 2 	USED(_5);
 3 
 4 	c = rowadd(et->row, nil, -1);
 5-	if(c) {
 6-		w = coladd(c, nil, nil, -1);
 7-		winsettag(w);
 8-		xfidlog(w, "new");
 9+	if(ncolnrow){
10+		if(c) {
11+			w = coladd(c, nil, nil, -1);
12+			winsettag(w);
13+			xfidlog(w, "new");
14+		}
15 	}
16 }
17 
18@@ -1449,7 +1451,6 @@ runproc(void *argvp)
19 	char *rcarg[4];
20 	void **argv;
21 	CFsys *fs;
22-	char *shell;
23 
24 	threadsetname("runproc");
25 
26@@ -1560,8 +1561,6 @@ runproc(void *argvp)
27 
28 	if(argaddr)
29 		putenv("acmeaddr", argaddr);
30-	if(acmeshell != nil)
31-		goto Hard;
32 	if(strlen(t) > sizeof buf-10)	/* may need to print into stack */
33 		goto Hard;
34 	inarg = FALSE;
35@@ -1654,10 +1653,7 @@ Hard:
36 	dir = nil;
37 	if(rdir != nil)
38 		dir = runetobyte(rdir, ndir);
39-	shell = acmeshell;
40-	if(shell == nil)
41-		shell = "rc";
42-	rcarg[0] = shell;
43+	rcarg[0] = acmeshell;
44 	rcarg[1] = "-c";
45 	rcarg[2] = t;
46 	rcarg[3] = nil;
47@@ -1668,7 +1664,6 @@ Hard:
48 			sendul(cpid, ret);
49 		threadexits(nil);
50 	}
51-	warning(nil, "exec %s: %r\n", shell);
52 
53    Fail:
54 	/* threadexec hasn't happened, so send a zero */
R src/cmd/acme/file.c => file.c
+0, -0
R src/cmd/acme/fns.h => fns.h
+0, -0
R src/cmd/acme/fsys.c => fsys.c
+0, -0
+22, -0
 1@@ -0,0 +1,22 @@
 2+#!/bin/sh
 3+
 4+path=[$1:-/usr/local/bin/]
 5+
 6+mk clean && NPROC=$(nproc) mk
 7+
 8+if [ -f "o.acme" ]; then
 9+    doas rm -f "$path/acme"
10+    doas cp o.acme "$path/acme"
11+    echo "==== acme installed succesfully ===="
12+	mk clean
13+else
14+    echo "error: no file"
15+    exit 1
16+fi
17+
18+if [ ! -f "/usr/share/man/man1/acme.1" ]; then
19+    doas cp  acme.1  /usr/share/man/man1/acme.1
20+    echo "=== acme man installed ===="
21+else
22+    echo "==== acme man already installed ===="
23+fi
R src/cmd/acme/logf.c => logf.c
+0, -0
R src/cmd/acme/look.c => look.c
+0, -0
R src/cmd/acme/mail/dat.h => mail/dat.h
+0, -0
R src/cmd/acme/mail/guide => mail/guide
+0, -0
R src/cmd/acme/mail/html.c => mail/html.c
+0, -0
R src/cmd/acme/mail/mail.c => mail/mail.c
+0, -0
R src/cmd/acme/mail/mesg.c => mail/mesg.c
+0, -0
R src/cmd/acme/mail/mkbox => mail/mkbox
+0, -0
R src/cmd/acme/mail/mkfile => mail/mkfile
+0, -0
R src/cmd/acme/mail/readme => mail/readme
+0, -0
R src/cmd/acme/mail/reply.c => mail/reply.c
+0, -0
R src/cmd/acme/mail/util.c => mail/util.c
+0, -0
R src/cmd/acme/mail/win.c => mail/win.c
+0, -0
R src/cmd/acme/mkfile => mkfile
+1, -1
1@@ -2,7 +2,7 @@
2 
3 TARG=acme
4 DIRS=mail
5-CFLAGS = -fcommon
6+CFLAGS = -fcommon # sorry, idk why but i need to rewrite whole acme to fix that
7 
8 OFILES=\
9 	acme.$O\
R src/cmd/acme/parser.c => parser.c
+16, -19
 1@@ -17,10 +17,10 @@ char
 2 
 3     rewind(file);
 4 
 5-    while (fgets(line, sizeof(line), file)) {
 6-        if (line[0] == '\n' || line[0] == '\0')
 7+    while(fgets(line, sizeof(line), file)){
 8+        if(line[0] == '\n' || line[0] == '\0')
 9             continue;
10-        if (strncmp(line, "@include", 8) == 0) {
11+        if(strncmp(line, "@include", 8) == 0){
12         	char path[256];
13         	char homepath[256];
14         	char *p = line + 8;
15@@ -28,7 +28,7 @@ char
16         	strcpy(path, p);
17         	path[strcspn(path, "\n")] = '\0';
18         	FILE *fi = fopen(path, "r");
19-        	if (!fi) {
20+        	if(!fi){
21         		snprintf(homepath, sizeof(homepath), "%s/%s", home, path);
22         		fi = fopen(homepath, "r");
23 				if (!fi) {
24@@ -41,8 +41,8 @@ char
25         	if (found) return found;
26         }
27         
28-        if (sscanf(line, "%127s %127[^\n]", name, val) == 2) {
29-            if (strcmp(name, desired_name) == 0) {
30+        if(sscanf(line, "%127s %127[^\n]", name, val) == 2){
31+            if(strcmp(name, desired_name) == 0){
32                 return strdup(val);
33             }
34         }
35@@ -54,7 +54,7 @@ uint32_t
36 getcolor(FILE *f, char *key, uint32_t def)
37 {
38 	char *temp = parsekeyvalue(f, key, NULL);
39-	if (!temp)
40+	if(!temp)
41 		return def;
42 	uint32_t color = strtoul(temp, NULL, 16) << 8 | 0xFF;
43 	free(temp);
44@@ -66,7 +66,7 @@ getintvalue(FILE *f, char *key, int def)
45 {
46     int result;
47     char *temp = parsekeyvalue(f, key, NULL);
48-    if (temp == NULL)
49+    if(temp == NULL)
50         return def;
51     else
52         result = atoi(temp);
53@@ -80,16 +80,16 @@ initconfig(char *custom_config)
54     char path[1024];
55     
56     home = getenv("HOME");
57-    if (!home) {
58+    if(!home){
59         fprintf(stderr, "$HOME not set\n");
60         exit(1);
61     }
62-    if (!custom_config)
63+    if(!custom_config)
64     	snprintf(path, sizeof(path), "%s/.acmerc", home);
65     else
66     	snprintf(path, sizeof(path), "%s", custom_config);
67 	FILE *f = fopen(path, "r");
68-	if (!f) {
69+	if(!f){
70 		fprintf(stderr, "can't open file\n");
71         exit(1);
72     }
73@@ -119,14 +119,10 @@ initconfig(char *custom_config)
74     dumppath = parsekeyvalue(f, "dumppath", "/tmp/acme.dump");
75     acmeshell = parsekeyvalue(f, "shell", "/bin/sh");
76 
77-    if (mainfont) {
78-        free(fontnames[0]);
79-        fontnames[0] = strdup(mainfont);
80-    }
81-    if (monofont) {
82-        free(fontnames[1]);
83-        fontnames[1] = strdup(monofont);
84-    }
85+    free(fontnames[0]);
86+    free(fontnames[1]);
87+    fontnames[0] = strdup(mainfont);
88+    fontnames[1] = strdup(monofont);
89 
90     globalautoindent = getintvalue(f, "autoindent", 1);
91     swapscrollbuttons = getintvalue(f, "swpscrllbtns", 0);
92@@ -136,6 +132,7 @@ initconfig(char *custom_config)
93     coolcolbtn = getintvalue(f, "coolcolbtn", 0);
94     coolscrollbg = getintvalue(f, "coolscrollbg", 0);
95     showdotfiles = getintvalue(f, "showdotfiles", 1);
96+    ncolnrow = getintvalue(f, "newcolnewrow", 1);
97 
98 	fclose(f);
99 }
R src/cmd/acme/parser.h => parser.h
+1, -0
1@@ -41,4 +41,5 @@ int openarg;
2 int coolcolbtn;
3 int coolscrollbg;
4 int showdotfiles;
5+int ncolnrow;
6 
R src/cmd/acme/regx.c => regx.c
+0, -0
R src/cmd/acme/rows.c => rows.c
+0, -0
R src/cmd/acme/scrl.c => scrl.c
+0, -0
+0, -14
 1@@ -1,14 +0,0 @@
 2-#!/bin/bash
 3-path=/usr/local/bin/
 4-
 5-mk clean && NPROC=$(nproc) mk
 6-
 7-if [ -f "o.acme" ]; then
 8-    doas rm -f "$path/acme"
 9-    doas cp o.acme "$path/acme"
10-    echo "ok"
11-	mk clean
12-else
13-    echo "error: no file"
14-    exit 1
15-fi
R src/cmd/acme/text.c => text.c
+0, -0
R src/cmd/acme/time.c => time.c
+0, -0
R src/cmd/acme/util.c => util.c
+0, -0
R src/cmd/acme/wind.c => wind.c
+0, -0
R src/cmd/acme/xfid.c => xfid.c
+0, -0