sigrid/gemnine

Description
# gemnine

WIP.

Gemini browser for Plan 9.

WTH is Gemini??? See https://gemini.circumlunar.space/

## Progress

All the basic stuff seems to work.

Server certificate thumbprints are not stored or validated yet.

`INPUT` (textual user input) is handled with "hold" mode on.

The plan is to add a separate GUI program to display the pages in a
better way, and perhaps turn the current implementation into a
filesystem like `webfs`.

## Installation

Clone the repo, `mk install`. Add a plumb rule to `$home/lib/plumbing`
right before `include basic` line:

```
type	is	text
data	matches	'gemini://[^ ]+'
plumb	to	gemini
plumb	client	window gemnine -w $0
```

Then update the current rules:

```
cp $home/lib/plumbing /mnt/plumb/rules
```

## Link history

While browsing, one might want to have a separate window with all the links followed:

```
while(){ syscall -o read 0 buf 512 </mnt/plumb/gemini >[2]/dev/null | tail -1 }
```
Last 5 commits (shortlog)
Date Author Short message Commit hash
2021-05-19 Sigrid dump raw to stdout if not /dev/cons 456b709807fdeb7c725731fd1469f7181b342893
2021-01-19 Sigrid do not print url description if it is the same as the url itself 11e93db76eefebd94f03bace14526c5218a3cfc6
2020-12-09 Sigrid OCEXEC, open page in the same window a194837a08fbac1792c9db77f5298a9a999ef6fb
2020-12-05 Sigrid differentiate between network errors and error responses 7eb61c82c8f04b7f4a93ecbed287b48b51583620
2020-08-24 Sigrid fix response freeing urls that aren't supposed to be freed a811d49d0d0ae0ed433903f4a3337fc2f75a5260
Files (browse)
.gitignore
LICENSE
README.md
gemnine.h
main.c
mkfile
req.c
url.c
util.c