summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* devdraw: fix x11 inputRuss Cox2013-06-211-1/+1
| | | | | R=rsc https://codereview.appspot.com/10458043
* rc: avoid undefined CXi Wang2013-03-191-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* libsec: avoid undefined CXi Wang2013-03-191-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* xd: accept -S for 8-byte swapRuss Cox2013-03-111-0/+36
| | | | | R=rsc https://codereview.appspot.com/7565045
* devdraw: control+click = button 2, alt/shift+click = button 3Russ Cox2013-03-073-26/+111
| | | | | | | For single-button mouse users. R=rsc https://codereview.appspot.com/7620043
* devdraw: silence unused variable warningsRuss Cox2013-02-081-2/+6
| | | | | R=rsc https://codereview.appspot.com/7304064
* devdraw: disable XCopyArea optimizationRuss Cox2013-02-081-2/+5
| | | | | | | | | | | | 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
* fontsrv: fix on X11 when X11H is not definedAlessandro Arzilli2013-01-301-1/+1
| | | | | | R=rsc CC=plan9port.codebot https://codereview.appspot.com/7228044
* libmach: fix crash in dwarfpc (misuse of realloc)Xi Wang2013-01-301-0/+1
| | | | | | R=rsc CC=plan9port.codebot https://codereview.appspot.com/7225059
* jpegdump: fix build and warningsDavid du Colombier2013-01-191-7/+8
| | | | | R=rsc https://codereview.appspot.com/7070070
* freq: fix crash with utf > 0xffff (thanks Andrey Mirtchovski)David du Colombier2013-01-041-2/+2
| | | | | R=rsc https://codereview.appspot.com/7029054
* venti/wrarena: fix arenapart breakageDavid du Colombier2013-01-031-3/+4
| | | | | R=rsc https://codereview.appspot.com/7027044
* fontsrv: only build when the pieces are thereRuss Cox2012-12-181-2/+2
|
* fontsrv: fix build on OpenBSD 5.2Christian Kellermann2012-12-113-2/+8
| | | | | | R=rsc CC=plan9port.codebot https://codereview.appspot.com/6850108
* auth/factotum: fix password prompt hang with secstoreDavid du Colombier2012-12-091-3/+3
| | | | | R=rsc http://codereview.appspot.com/6906057
* fontsrv: make single quotes look like quotesRuss Cox2012-12-031-3/+15
| | | | | R=rsc https://codereview.appspot.com/6864051
* fontsrv: scaled pjwRuss Cox2012-12-015-11/+369
| | | | | R=rsc https://codereview.appspot.com/6854130
* acme: retina scaling for scroll bars, buttonRuss Cox2012-11-262-26/+34
| | | | | R=rsc http://codereview.appspot.com/6854094
* samterm: retina scaling for scroll bars, bordersRuss Cox2012-11-263-14/+24
| | | | | R=rsc http://codereview.appspot.com/6844083
* 9term: adjust to dpi changesRuss Cox2012-11-261-15/+23
| | | | | R=rsc http://codereview.appspot.com/6847105
* devdraw: fake dpi calculation on MacRuss Cox2012-11-251-0/+8
| | | | | R=rsc http://codereview.appspot.com/6782115
* libframe: auto scale tick for retinaRuss Cox2012-11-252-8/+22
| | | | | R=rsc http://codereview.appspot.com/6850102
* devdraw: use %R not Fn-F3 for retina toggleRuss Cox2012-11-251-1/+1
| | | | | R=rsc http://codereview.appspot.com/6854093
* devdraw: add forcedpi toggled by Fn+F3 on MacRuss Cox2012-11-254-3/+20
| | | | | R=rsc http://codereview.appspot.com/6846104
* acme: set $samfile (same as $%) during executionMarius Eriksen2012-11-251-0/+1
| | | | | | R=rsc CC=plan9port.codebot http://codereview.appspot.com/6854092
* fontsrv: work around a few crashesRuss Cox2012-11-251-2/+6
| | | | | | | Probably not the right fix, but gets us going. R=rsc http://codereview.appspot.com/6782113
* devdraw: fix retina modeRuss Cox2012-11-251-1/+1
| | | | | R=rsc http://codereview.appspot.com/6847104
* libdraw: add scalesizeRuss Cox2012-11-251-0/+7
| | | | | R=rsc http://codereview.appspot.com/6855092
* devdraw, libdraw: add display->dpiRuss Cox2012-11-253-2/+37
| | | | | | | | Fixed at 100 right now, but the plan is to make it accurate and then use it. R=rsc http://codereview.appspot.com/6856091
* devdraw: restore compilation on OS X 10.6Shenghou Ma2012-11-251-0/+2
| | | | | | | Also add some ignored files to .hgignore R=rsc http://codereview.appspot.com/6842089
* acme: use threadspawnd to avoid changing "." of current processRuss Cox2012-10-221-29/+8
| | | | | R=rsc http://codereview.appspot.com/6736060
* libthread: add threadspawndRuss Cox2012-10-222-6/+16
| | | | | R=rsc http://codereview.appspot.com/6742064
* acme: add $acmeshell to control execution shellMarius Eriksen2012-10-213-2/+12
| | | | | | R=rsc CC=plan9port.codebot http://codereview.appspot.com/6614056
* fontsrv: x11 supportYuval Pavel Zholkover2012-10-214-3/+274
| | | | | | R=rsc, 0intro CC=plan9port.codebot http://codereview.appspot.com/6739047
* plumb.app: accept plumb:foo as alias for fooRob Kroeger2012-10-211-1/+16
| | | | | | R=rsc CC=plan9port.codebot http://codereview.appspot.com/5495046
* devdraw: map X11 dead_diaresis to double quoteCaio Oliveira2012-10-211-39/+42
| | | | | | R=rsc CC=plan9port.codebot http://codereview.appspot.com/6690049
* libmemdraw: fix int size bugErik Quanstrom2012-10-211-1/+2
| | | | | | R=rsc, quanstro CC=plan9port.codebot http://codereview.appspot.com/6657043
* silence more warningsRuss Cox2012-10-2115-299/+307
| | | | | R=rsc http://codereview.appspot.com/6744056
* fix clang warnings reported by Tuncer AyazRuss Cox2012-10-2123-620/+617
| | | | | R=rsc http://codereview.appspot.com/6744054
* lib9: fix Mac warningRuss Cox2012-10-201-1/+8
| | | | | R=rsc http://codereview.appspot.com/6749053
* fix gcc 4.7 warnings (thanks Tuncer Ayaz)Russ Cox2012-10-2014-40/+9
| | | | | R=rsc http://codereview.appspot.com/6744053
* libframe: use correct text color when paintingRob Kroeger2012-10-161-6/+12
| | | | | | R=rsc CC=plan9port.codebot http://codereview.appspot.com/6625065
* devdraw: MacBook retina supportRob Kroeger2012-10-161-8/+121
| | | | | | | | Enable with export devdrawretina=1 (everything will be smaller). R=rsc CC=plan9port.codebot http://codereview.appspot.com/6592072
* devdraw: prefer 24-bit over 15-bit or 16-bit.Russ Cox2012-10-071-6/+6
| | | | | | | Fixes remote X11 use via XQuartz 2.7.4. R=rsc http://codereview.appspot.com/6624058
* acme: correct writes of runes on auspicious byte boundariesErik Quanstrom2012-10-051-23/+34
| | | | | | R=rsc, r CC=plan9port.codebot http://codereview.appspot.com/6586067
* src/cmd: Add a repurposed import(4), called `9import', to the ports.Akshat Kumar2012-09-241-0/+239
| | | | | | | | | | | | The code is adapted from Plan 9's import(4); this allows us to speak that protocol. We don't currently support AAN (in the works) or TLS/SSL. Thanks to David for help with the man page, testing, and development. R=0intro, rsc CC=plan9port.codebot http://codereview.appspot.com/6458100
* acme: mouse movement for DelRuss Cox2012-09-235-8/+62
| | | | | | | | | | | | | | | If the mouse was in the tag of the old window, it was most likely pointing at Del. If bringing up a new window from below and not moving the mouse somewhere else, adjust it so that it ends up pointing at Del in the replacement window's tag too. This makes it easy to Del a sequence of windows in a column, from top to bottom. http://www.youtube.com/watch?v=ET8w6RT6u5M R=r http://codereview.appspot.com/6558047
* snarfer: disable during buildRuss Cox2012-09-181-1/+1
| | | | | | | Don't want to require X11 during OS X build anymore. R=rsc http://codereview.appspot.com/6531045
* sam: add $% as an alias for $samfileRuss Cox2012-09-171-0/+1
| | | | | R=r http://codereview.appspot.com/6488137
* libdraw: add visibleclicks modeRuss Cox2012-09-173-2/+54
| | | | | R=rsc http://codereview.appspot.com/6501137