OK, turing.

<- leave blank

Fri Apr 19 07:16:06 EDT 2024

diff ec73849b6936d839410ccb239d14b2f7c7ca3d6f uncommitted
--- a/lib/namespace
+++ b/lib/namespace
@@ -43,3 +43,10 @@
 . /lib/namespace.local
 . /lib/namespace.$sysname
 . /cfg/$sysname/namespace
+
+bind -c /usr/glenda /n/fossil/usr/glenda
+bind -c /n/fossil/usr/ /usr/
+bind -c /n/other/usr/$user/tmp /usr/$user/tmp
+bind -c /usr/$user/tmp /tmp
+
+cd /usr/$user
--- a/rc/bin/fshalt
+++ b/rc/bin/fshalt
@@ -24,6 +24,10 @@
 bind -c '#s' /srv
 bind '#p' /proc

+# start venti flushing
+venti/sync -h localhost >[2]/dev/null &
+venti/sync >[2]/dev/null &
+
 unmount /mnt/consoles >[2]/dev/null
 kill consolefs | rc # don't compete with /mnt/consoles
 sleep 1
@@ -30,12 +34,31 @@

 c=`{ls /srv/cwfs*cmd >[2]/dev/null}
 h=`{ls /srv/hjfs*cmd >[2]/dev/null}
-e=`{ls /srv/ext4*cmd >[2]/dev/null}
-s=`{awk '/^sd./ {print substr($1,3,1)}' '#S/sdctl' >[2]/dev/null}
+f=`{ls /srv/fscons*>[2]/dev/null}

 # for scram, don't scram other systems
 bind -b '#P' /dev >[2]/dev/null
+if(!  ~ $reboot yes){
+ if (test -e '#P'/apm)
+ scram=yes
+ if (test -e '#P'/acpitbls -a -e '#P'/iow)
+ scram=yes
+}

+echo -n syncing...
+for(i in $f) @ {
+ echo -n $i...
+ echo fsys all sync >>$i
+}
+
+# flush the last bit of possible fossil traffic
+if (ls /srv | grep -s fossil) {
+ echo -n venti...
+ venti/sync -h localhost >[2]/dev/null &
+ venti/sync >[2]/dev/null &
+ sleep 5
+}
+
 # halting (binaries we run can't be on the fs we're halting)
 ramfs
 builtin cd /tmp
@@ -73,6 +96,12 @@
		while(test -e $i)
			sleep 1
	}
+ for(i in $f) @ {
+ echo -n $i...
+ echo fsys all halt >>$i
+ sleep 2
+ }
+
	echo
	echo done halting

--- a/rc/bin/service/telcodata
+++ b/rc/bin/service/telcodata
@@ -1,3 +1,15 @@
 #!/bin/rc
-echo This is the plan 9 incoming fax line.
-echo Please do not make data calls to us.
+
+fn sigint {
+}
+
+fn sighup {
+ echo kill > /proc/$pid/note
+}
+
+while () {
+ echo -n user:
+ user=`{read -n 1}
+ if (~ $#user 1)
+ auth/login $user
+}
--- a/rc/bin/termrc
+++ b/rc/bin/termrc
@@ -93,9 +93,4 @@
 if(test -f /dev/apm)
	aux/apm

-if(~ $terminal *reform*){
- reform/pm
- reform/audio
-}
-
-dontkill
'^(ipconfig|factotum|mntgen|venti|hjfs|kfs|cfs|cwfs.*|9660srv|dossrv|paqfs|cs|dns|listen|reboot|usbd|kb|disk|ether|wpa)$'
+dontkill
'^(ipconfig|factotum|mntgen|venti|hjfs|kfs|cfs|cwfs.*|9660srv|dossrv|paqfs|cs|dns|listen|reboot|usbd|kb|disk|ether|wpa|fossil)$'
--- a/sys/man/1/git
+++ b/sys/man/1/git
@@ -230,7 +230,7 @@
 .B -b
 option will cause the repository to be initialized as a bare repository.
 Passing the
-.  -u
+.B -u
 .I upstream
 option will cause the upstream to be configured to
 .I upstream.
--- a/sys/man/6/keyboard
+++ b/sys/man/6/keyboard
@@ -25,6 +25,15 @@
 .B Caps
 .B Lock
 acts as an additional control key.
+To make it work like an actual
+.B Caps
+.B Lock
+key ou can get it with:
+.PP
+.RS
+.L
+echo none 58 63588 >/dev/kbmap
+.RE
 .PP
 The delete character
 .RB ( 0x7F )
--- a/sys/src/9/boot/nusbrc
+++ b/sys/src/9/boot/nusbrc
@@ -5,7 +5,7 @@
 mkdir -p -m 700 '#σc/usb'
 mkdir -p -m 700 '#σc/usbnet'

-if(!  nusb/usbd)
+if(!  nusb/usbd -d)
	exit

 @{
@@ -71,7 +71,7 @@
		devs='#σc/sdU'^($1 $5)
		rm -rf '#σc/usb/'^$1.* '#σc/usb/'^$5.hid '#σc/usbnet/'^$1.* $devs
		$devs.*
	}
- rc < '#σ/usb/usbevent' &
+ rc -x < '#σ/usb/usbevent' &
 }

 # usbd removes this file once all devices have been enumerated
--- a/sys/src/9/ip/devip.c
+++ b/sys/src/9/ip/devip.c
@@ -816,7 +816,7 @@
 }

 /*
- * find a unused loacal port for a protocol.
+ * find a unused local port for a protocol.
  *
  * p needs to be locked
  */
--- a/sys/src/cmd/aux/getflags.c
+++ b/sys/src/cmd/aux/getflags.c
@@ -5,7 +5,7 @@
 void
 usage(void)
 {
- print("status=usage\n");
+ fprint(2, "status=usage\n");
	exits(0);
 }

--- a/sys/src/cmd/aux/vga/igfx.c
+++ b/sys/src/cmd/aux/vga/igfx.c
@@ -837,7 +837,7 @@
			dpll = igfx->pipe[x].dpll;
			/* enable pll */
			dpll->ctrl.v = 1<<31;
- /* LCPLL 2700 (non scc) reference */
+ /* LCPLL 2700 (non ssc) reference */
			dpll->ctrl.v |= 3<<28;

			genwrpll(freq, &n2, &p1, &r2);
--- a/sys/src/cmd/cmp.c
+++ b/sys/src/cmd/cmp.c
@@ -127,6 +127,6 @@
 static void
 usage(void)
 {
- print("usage: cmp [-lLs] file1 file2 [offset1 [offset2] ]\n");
+ fprint(2, "usage: cmp [-lLs] file1 file2 [offset1 [offset2] ]\n");
	exits("usage");
 }


Fri Apr 19 03:16:04 EDT 2024
Sawubona, bengifuna ukwazi intengo yakho.

Thu Apr 18 10:19:26 EDT 2024
ramfs -a -m /tmp -S ramsrv
mkdir '#σc'/ram
echo 3 > '#σc'/ram/ram <>[3]/srv/ramsrv
mkdir -p /tmp/^(bin dev fd env srv shr proc lib sys/lib net)
dircp /bin /tmp/bin
dircp /lib /tmp/lib
dircp /sys/lib /tmp/sys/lib
mount -a /srv/cs /net
mount -a /srv/dns /net

bind -c /tmp /

bind '#c' /dev
bind '#d' /fd
bind -c '#e' /env
bind '#p' /proc
bind -c '#s' /srv
bind -q '#σ' /shr
bind -a '#¤' /dev
bind -qa '#¶' /dev
bind -a '#l' /net
bind -a '#I' /net
bind -a '#a' /net


Thu Apr 18 10:06:56 EDT 2024
ramfs
mkdir -p /tmp/^(bin dev fd env srv shr proc lib sys/lib net)
dircp /bin /tmp/bin
dircp /lib /tmp/lib
dircp /sys/lib /tmp/sys/lib
bind '#c' /dev
bind '#d' /fd
bind -c '#e' /env
bind '#p' /proc
bind -c '#s' /srv
bind -q '#σ' /shr
bind -a '#¤' /dev
bind -qa '#¶' /dev
bind -a '#l' /net
bind -a '#I' /net
bind -a '#a' /net
mount -a /srv/cs /net
mount -a /srv/dns /net

bind -c /tmp /


Thu Apr 18 10:06:38 EDT 2024
src(0xffffffff8011767c); // dumpstack+0x10
// data at 0xffffffff8208f460?  80171012
src(0xffffffff80171012); // panic+0xeb
// data at 0xffffffff8208f5b0?  8021991e
src(0xffffffff8021991e); // cclone+0x42
// data at 0xffffffff8208f5f8?  8021a505
src(0xffffffff8021a505); // createdir+0x73
// data at 0xffffffff8208f628?  801eb6d6
src(0xffffffff801eb6d6); // shrcreate+0x34b
// data at 0xffffffff8208f698?  8021b290
src(0xffffffff8021b290); // namec+0x970
// data at 0xffffffff8208f768?


Thu Apr 18 06:38:31 EDT 2024
Aloha, makemake wau eʻike i kāu kumukūʻai.

Thu Apr 18 05:30:14 EDT 2024
Hæ, ég vildi vita verð þitt.

Wed Apr 17 23:47:13 EDT 2024
xinit: XFree86_VT property unexpectedly has 0 items instead of 1
xinit: Unable to run program "xterm": No such file or directory
Specify a program on the command line or make sure that /opt/local/bin
is in your path.

xinit: connection to X server lost

waiting for X server to shut down

Wed Apr 17 15:44:46 EDT 2024
From 7f0f4210b60b912032737146fb036cefd71d670b Mon Sep 17 00:00:00 2001
From: Amavect <amavect@gmail.com>
Date: Fri, 12 Apr 2024 23:38:40 -0500
Subject: [PATCH] fix backspace deleting login prompt

devkbd directly echos to the terminal,
but it doesn't know the line buffer length.
Instead, let devcons control the echoing.

Move kbd functions from devcons into devkbd.
Remove kbdputc from fns.h
Create consreadkbdline to reduce indentation.
Remove the now unneeded precondition in the echo function.

Backspace now deletes a UTF-8 codepoint during the login prompt.
Visual mismatch may still happen if a codepoint is not a glyph.
It's good enough for now.
---
 kern/devcons.c | 139 ++++++++++++++++++-------------------------------
 kern/devkbd.c | 58 ++++++++++++++++++++-
 kern/fns.h | 1 -
 3 files changed, 108 insertions(+), 90 deletions(-)

diff --git a/kern/devcons.c b/kern/devcons.c
index 8c94993..aa4438d 100644
--- a/kern/devcons.c
+++ b/kern/devcons.c
@@ -4,8 +4,6 @@
 #include "fns.h"
 #include "error.h"

-#include "keyboard.h"
-
 #include <authsrv.h>

 #undef write
@@ -267,68 +265,16 @@ echoscreen(char *buf, int n)
 static void
 echo(char *buf, int n)
 {
- if(kbd.raw)
- return;
	if(screenputs != 0)
		echoscreen(buf, n);
	else
		write(1, buf, n);
 }

-static int
-_kbdputc(Queue *q, int c)
-{
- char buf[UTFmax];
- Rune r = c;
- int n;
-
- if((n = runetochar(buf, &r)) > 0){
- echo(buf, n);
- qproduce(q, buf, n);
- }
- return 0;
-}
-
-/* _kbdputc, but with compose translation */
-int
-kbdputc(Queue *q, int c)
+static void
+echochar(char c)
 {
- static int collecting, nk;
- static Rune kc[5];
- int i;
-
- switch(c){
- case 0:
- case Kcaps:
- case Knum:
- case Kshift:
- case Kaltgr:
- case Kmod4:
- case Kctl:
- /* ignore modifiers; see nextrune() of kbdfs */
- return 0;
-
- case Kalt:
- collecting = 1;
- nk = 0;
- return 0;
- }
-
- if(!collecting)
- return _kbdputc(q, c);
-
- kc[nk++] = c;
- c = latin1(kc, nk);
- if(c < -1) /* need more keystrokes */
- return 0;
- if(c != -1) /* valid sequence */
- _kbdputc(q, c);
- else
- for(i=0; i<nk; i++)
- _kbdputc(q, kc[i]);
- nk = 0;
- collecting = 0;
- return 0;
+ echo(&c, 1);
 }


@@ -517,13 +463,58 @@ qreadcons(Queue *q, char *buf, int n)
	return qread(q, buf, n);
 }

+static long
+consreadkbdline(void *buf, long n)
+{
+ char ch;
+ int eol;
+
+ while(!qcanread(lineq)){
+ eol = 1;
+ if(qreadcons(kbdq, &ch, 1) == 1){
+ eol = 0;
+ kbd.line[kbd.x] = ch;
+ switch(ch){
+ case '\b':
+ if(kbd.x > 0){
+ kbd.x--;
+ /* attempt deleting a codepoint */
+ while(kbd.x > 0 && kbd.line[kbd.x] < (char)-0x40)
+ kbd.x--;
+ /* codepoint == glyph?  One can hope...  */
+ echochar(ch);
+ }
+ break;
+ case 0x15:
+ kbd.x = 0;
+ break;
+ case '\n':
+ kbd.x++;
+ echochar(ch);
+ /* fallthrough */
+ case 0x04:
+ eol = 1;
+ break;
+ default:
+ kbd.x++;
+ echochar(ch);
+ }
+ }
+ if(kbd.x == sizeof(kbd.line) || eol){
+ qwrite(lineq, kbd.line, kbd.x);
+ kbd.x = 0;
+ }
+ }
+ return qread(lineq, buf, n);
+}
+
 static long
 consread(Chan *c, void *buf, long n, vlong off)
 {
	char *b;
	char tmp[128]; /* must be >= 6*NUMSIZE */
	char *cbuf = buf;
- int ch, i, eol;
+ int i;
	vlong offset = off;

	if(n <= 0)
@@ -550,36 +541,8 @@ consread(Chan *c, void *buf, long n, vlong off)
				} while (n>0 && qcanread(kbdq));
				n = cbuf - (char*)buf;
			}
- } else {
- while(!qcanread(lineq)) {
- eol = 1;
- if(qreadcons(kbdq, &kbd.line[kbd.x], 1) == 1){
- eol = 0;
- ch = kbd.line[kbd.x];
- switch(ch){
- case '\b':
- if(kbd.x)
- kbd.x--;
- break;
- case 0x15:
- kbd.x = 0;
- break;
- case '\n':
- kbd.x++;
- case 0x04:
- eol = 1;
- break;
- default:
- kbd.x++;
- }
- }
- if(kbd.x == sizeof(kbd.line) || eol){
- qwrite(lineq, kbd.line, kbd.x);
- kbd.x = 0;
- }
- }
- n = qread(lineq, buf, n);
- }
+ } else
+ n = consreadkbdline(buf, n);
		qunlock(&kbd.lk);
		poperror();
		return n;
diff --git a/kern/devkbd.c b/kern/devkbd.c
index e0921e2..6fe3143 100644
--- a/kern/devkbd.c
+++ b/kern/devkbd.c
@@ -4,9 +4,65 @@
 #include "fns.h"
 #include "error.h"

+#include "keyboard.h"
+
 static Queue* keyq;
 static int kbdinuse;

+static int
+_kbdputc(Queue *q, int c)
+{
+ char buf[UTFmax];
+ Rune r = c;
+ int n;
+
+ if((n = runetochar(buf, &r)) > 0)
+ qproduce(q, buf, n);
+ return 0;
+}
+
+/* _kbdputc, but with compose translation */
+static int
+kbdputc(Queue *q, int c)
+{
+ static int collecting, nk;
+ static Rune kc[5];
+ int i;
+
+ switch(c){
+ case 0:
+ case Kcaps:
+ case Knum:
+ case Kshift:
+ case Kaltgr:
+ case Kmod4:
+ case Kctl:
+ /* ignore modifiers; see nextrune() of kbdfs */
+ return 0;
+
+ case Kalt:
+ collecting = 1;
+ nk = 0;
+ return 0;
+ }
+
+ if(!collecting)
+ return _kbdputc(q, c);
+
+ kc[nk++] = c;
+ c = latin1(kc, nk);
+ if(c < -1) /* need more keystrokes */
+ return 0;
+ if(c != -1) /* valid sequence */
+ _kbdputc(q, c);
+ else
+ for(i=0; i<nk; i++)
+ _kbdputc(q, kc[i]);
+ nk = 0;
+ collecting = 0;
+ return 0;
+}
+
 void
 kbdkey(Rune r, int down)
 {
@@ -17,7 +73,7 @@ kbdkey(Rune r, int down)

	if(!kbdinuse || keyq == nil){
		if(down)
- kbdputc(kbdq, r); /* /dev/cons */
+ kbdputc(kbdq, r);
		return;
	}

diff --git a/kern/fns.h b/kern/fns.h
index f267781..e1fa041 100644
--- a/kern/fns.h
+++ b/kern/fns.h
@@ -78,7 +78,6 @@ int iprint(char*, ...);
 void isdir(Chan*);
 int iseve(void);
 #define islo() (0)
-int kbdputc(Queue*, int);
 void kbdkey(Rune, int);
 int kproc(char*, void(*)(void*), void*);
 void ksetenv(char*, char*, int);
--
2.44.0



Wed Apr 17 11:33:53 EDT 2024
oi, só passando para dar um oi mesmo...

Wed Apr 17 11:08:40 EDT 2024
Hello it's alex again.  We have encountered an issue with receiving replies and we
were unable to get your last message.  I use special components that can deliver
your business more customers, bookings, sign ups and more hands free!  Reply with
the word "Yes" and I will send more information!  I apologize for the second
message.  Thanks!

prev | next