Commits
- Commit:
1889a2578366ca17b4fee0b0641b4db183efd383
- From:
- Steve McCoy <mccoyst@gmail.com>
- Via:
- Russ Cox <rsc@swtch.com>
- Date:
rcmain: use new $termprog variable
R=rsc
CC=plan9port.codebot
https://codereview.appspot.com/12505045
- Commit:
1670a244d90342023fd84cee9fc01347aaed8abc
- From:
- Russ Cox <rsc@swtch.com>
- Date:
devdraw: set window name to argv[0]
R=rsc
CC=r
https://codereview.appspot.com/12577043
- Commit:
bf63f986ff1a433ab6cce5287d51c191036f0a65
- From:
- Russ Cox <rsc@swtch.com>
- Date:
9term: set TERM=dumb instead of TERM=9term
Everyone seems to assume that TERM != dumb implies
ANSI escape codes are okay. In fact, many people assume
that unconditionally, but it is easier to argue back about
TERM=dumb than TERM=9term.
This applies to acme win too, because they share the code.
Set termprog=9term or termprog=win for clients who
need to know.
R=rsc
CC=r
https://codereview.appspot.com/12532043
- Commit:
2bc9a13faf0abcfa43cddc8c226b2f742b764c4a
- From:
- Russ Cox <rsc@swtch.com>
- Date:
acme: allow :6 in 5-line file
R=rsc
https://codereview.appspot.com/12162043
- Commit:
d74fdb6edbedbb184de9a8230e156460cb609aa6
- From:
- Roger Peppe <rogpeppe@gmail.com>
- Date:
cmd/devdraw: clear keyboard state on lost focus.
See https://bitbucket.org/rsc/plan9port/issue/128/alt-button-sticks-in-acme-sometimes-after
R=rsc
https://codereview.appspot.com/11453043
- Commit:
3d31240bfdaee03aff28103b530ff593e9ddbbc5
- From:
- David du Colombier <0intro@gmail.com>
- Date:
libregexp: update from Plan 9
R=rsc
https://codereview.appspot.com/10690044
- Commit:
da3ed55e4e4d2d3052b03df3dd0a40d19f99ea70
- From:
- Russ Cox <rsc@swtch.com>
- Date:
devdraw: fix x11 input
R=rsc
https://codereview.appspot.com/10458043
- Commit:
1bfec89b997c9544100128fec6e0b0c3757fdd11
- From:
- Xi Wang <xi.wang@gmail.com>
- Via:
- Russ Cox <rsc@swtch.com>
- Date:
rc: avoid undefined C
There are two bugs in pdec() on INT_MIN:
* wrong output.
`n = 1-n' should be `n = -1-n' when n is INT_MIN.
* infinite loop.
gcc optimizes `if(n>=0)' into `if(true)' because `-INT_MIN' (signed integer overflow) is undefined behavior in C, and gcc assumes the negation of a negative number must be positive. The resulting binary keeps printing '-' forever given INT_MIN.
Try the simplified pdec.c below.
$ gcc pdec.c
$ ./a.out -2147483648
--214748364*
$ gcc pdec.c -O2
$ ./a.out -2147483648
<infinite loop>
$ gcc pdec.c -O2 -D__PATCH__
$ ./a.out -2147483648
-2147483648
=== pdec.c ===
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#define io void
void pchr(io *f, int c)
{
putchar(c);
}
void pdec(io *f, int n)
{
if(n<0){
#ifndef __PATCH__
n=-n;
if(n>=0){
pchr(f, '-');
pdec(f, n);
return;
}
/* n is two's complement minimum integer */
n = 1-n;
#else
if(n!=INT_MIN){
pchr(f, '-');
pdec(f, -n);
return;
}
/* n is two's complement minimum integer */
n = -(INT_MIN+1);
#endif
pchr(f, '-');
pdec(f, n/10);
pchr(f, n%10+'1');
return;
}
if(n>9)
pdec(f, n/10);
pchr(f, n%10+'0');
}
int main(int argc, char **argv)
{
int n = atoi(argv[1]);
pdec(NULL, n);
putchar('\n');
}
R=rsc
CC=plan9port.codebot
https://codereview.appspot.com/7241055
- Commit:
8a2a5b8f2568a665f00741994c1247f0f7d3dffe
- From:
- Xi Wang <xi.wang@gmail.com>
- Via:
- Russ Cox <rsc@swtch.com>
- Date:
libsec: avoid undefined C
gcc compiles `p + length < p' into 'length < 0' since pointer overflow is undefined behavior in C. This breaks the check against a large `length'.
Use `length > pend - p' instead.
There's no need to check `length < 0' since `length' is from length_decode() and should be non-negative.
===
Try the simplified code.
void bar(void);
void foo(unsigned char *p, int length)
{
if (p + length < p)
bar();
}
$ gcc -S -o - t.c -O2
...
foo:
.LFB0:
.cfi_startproc
testl %esi, %esi
js .L4
rep
ret
.L4:
jmp bar
.cfi_endproc
Clearly `p' is not used at all.
R=rsc
CC=plan9port.codebot
https://codereview.appspot.com/7231069
- Commit:
01e3847b7e6ff87f72a34a42cd98425e569250f6
- From:
- Russ Cox <rsc@swtch.com>
- Date:
xd: accept -S for 8-byte swap
R=rsc
https://codereview.appspot.com/7565045
- Commit:
36bb28dc638bb3091e05996156b5fbecbc67dcd5
- From:
- Russ Cox <rsc@swtch.com>
- Date:
devdraw: control+click = button 2, alt/shift+click = button 3
For single-button mouse users.
R=rsc
https://codereview.appspot.com/7620043
- Commit:
17934beda0895d1b584e09f0253b8205b7fd6de2
- From:
- Russ Cox <rsc@swtch.com>
- Date:
devdraw: silence unused variable warnings
R=rsc
https://codereview.appspot.com/7304064
- Commit:
5154e54d8b8ee864f31f0774ee590be87a1d6e02
- From:
- Russ Cox <rsc@swtch.com>
- Date:
devdraw: disable XCopyArea optimization
Ubuntu Precise seems to have a buggy X server
that sometimes fails at XCopyArea. Let devdraw
do it itself.
This will slow down remote X a little bit,
but slow and correct is better than fast and broken.
R=rsc
https://codereview.appspot.com/7310069
- Commit:
cac1425c4a48d9bdead08249ccfc0ba5d0156b97
- From:
- Alessandro Arzilli <alessandro.arzilli@gmail.com>
- Via:
- Russ Cox <rsc@swtch.com>
- Date:
fontsrv: fix on X11 when X11H is not defined
R=rsc
CC=plan9port.codebot
https://codereview.appspot.com/7228044
- Commit:
0dc3aa4b1dcca64ca747de9ceb05f0033f884bd6
- From:
- Xi Wang <xi.wang@gmail.com>
- Via:
- Russ Cox <rsc@swtch.com>
- Date:
libmach: fix crash in dwarfpc (misuse of realloc)
R=rsc
CC=plan9port.codebot
https://codereview.appspot.com/7225059