Skip to content

Commit ba81ff1

Browse files
committed
update Windows version
1 parent 285e231 commit ba81ff1

File tree

9 files changed

+23
-33
lines changed

9 files changed

+23
-33
lines changed

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ DEVFLAGS = -O0 -g3 -DDEBUG -Wall
77
OS := $(shell uname -s | tr "[:upper:]" "[:lower:]")
88

99
# Win-64
10-
ifeq (mingw64_nt-10.0,$(OS))
10+
ifeq (msys_nt-10.0,$(OS))
1111
CC=gcc -DWIN32=1
1212
PRODFLAGS += -D_FILE_OFFSET_BITS=64
1313
LDFLAGS = -lws2_32 -static -lpthread

src/0.c

+3-8
Original file line numberDiff line numberDiff line change
@@ -876,11 +876,6 @@ Z K _3d_(K x,K y) {
876876
//I n; //DO(10, if ((n = send(sockfd, buf, -1 + sizeof buf, 0)) == -1) { perror("send error"); R DOE; } else hi(OK))
877877
}
878878

879-
#ifdef WIN32
880-
#define popen _popen
881-
#define pclose _pclose
882-
#endif
883-
884879
K popen_charvec(S cmd) {
885880
FILE *f; K z,l; S s=0; I n=0;
886881
f=popen(cmd,"r"); P(!f,_n())
@@ -956,7 +951,7 @@ K _4d_(S srvr,S port,K y) {
956951
if(INVALID_SOCKET==(sockfd=socket(ptr->ai_family,ptr->ai_socktype,ptr->ai_protocol)))continue;
957952
else if(-1==connect(sockfd,ptr->ai_addr,ptr->ai_addrlen)){neterrno=WSAGetLastError(); r=closesocket(sockfd); if(r)R FE; continue;}
958953
else break;
959-
if(!ptr){fprintf(stderr, "conn: failed to connect (lld%s)\n",neterrno); freeaddrinfo(result); R DOE;}
954+
if(!ptr){fprintf(stderr, "conn: failed to connect (%lld)\n",neterrno); freeaddrinfo(result); R DOE;}
960955
I n=strlen(kC(y)); C msg[n+5]; for(i=0;i<n+1;i++){msg[i]=kC(y)[i];}
961956
msg[n]='\r'; msg[n+1]='\n'; msg[n+2]='\r'; msg[n+3]='\n'; msg[n+4]='\0';
962957
if(send(sockfd, msg, strlen(msg), 0)==-1){O("errno:%d\n",errno); r=closesocket(sockfd); if(r)R FE; freeaddrinfo(result); R WE;}
@@ -1044,7 +1039,7 @@ K _5d_(K x,K y,I dosync) {
10441039
I ft,fn;
10451040

10461041
#ifdef WIN32
1047-
size_t pread(int __fd,void* __buf,size_t __nbyte,off_t __off);
1042+
ssize_t pread (int __fd, void *__buf, size_t __nbytes, off_t __offset);
10481043
#endif
10491044
I g;
10501045
g=pread(f,&ft,sizeof(ft),2*sizeof(I)); if(!g)show(kerr("pread"));
@@ -1210,7 +1205,7 @@ K _3m(K x) {
12101205
// loop through all the results and connect to the first we can
12111206
for(p = servinfo; p != NULL; p = p->ai_next)
12121207
if(INVALID_SOCKET==(sockfd=socket(p->ai_family,p->ai_socktype,p->ai_protocol))){
1213-
O("client socket(): %ld\n", WSAGetLastError()); continue; }
1208+
O("client socket(): %d\n", WSAGetLastError()); continue; }
12141209
else if(-1==connect(sockfd, p->ai_addr, p->ai_addrlen)){
12151210
O("client connect(): %d\n", WSAGetLastError());
12161211
rv=closesocket(sockfd); if(rv)R FE; continue; }

src/getline.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ I getdelim(S *s,size_t*n, I d, FILE *f)//target, current capacity, delimiter, fi
9595
#endif
9696

9797
#ifdef WIN32
98-
I getline(S *s,size_t *n, FILE *f){ R getdelim(s,n,'\n',f);}
99-
I getdelim(S *s,size_t *n, I d, FILE *f) { //target, current capacity, delimiter, file
98+
ssize_t getline (char **s, size_t *n, FILE *f){ R getdelim(s,n,'\n',f);}
99+
ssize_t getdelim (char **s, size_t *n, int d, FILE *f){ //target, current capacity, delimiter, file
100100
#if 0
101101
// this code is MSVC runtime version specific
102102
char *q; I w=0;

src/getline.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@ I getdelim(S *s,size_t * __restrict__ n,I d,FILE *f);
1313
#endif
1414

1515
#if WIN32
16-
I getdelim(S*s,size_t*n,I d,FILE *f);
16+
ssize_t getdelim (char **, size_t *, int, FILE *);
1717
#endif

src/kc.c

+2-3
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,6 @@ I kinit() { //oom (return bad)
121121
#ifndef WIN32
122122
PG = sysconf(_SC_PAGE_SIZE);
123123
#else
124-
_fmode = O_BINARY;
125124
SYSTEM_INFO si; GetSystemInfo(&si); PG = si.dwPageSize;
126125
#endif
127126

@@ -495,7 +494,7 @@ void *socket_thread(void *arg) {
495494
if (!p) { fprintf(stderr, "server: failed to bind\n"); exit(2); }
496495
freeaddrinfo(result);
497496

498-
if(SOCKET_ERROR==listen(listener, 10)){O("listen() failed with error: %ld\n", WSAGetLastError()); exit(3);}
497+
if(SOCKET_ERROR==listen(listener, 10)){O("listen() failed with error: %d\n", WSAGetLastError()); exit(3);}
499498
else FD_SET(listener, &master);
500499

501500
SOCKET SockSet[FD_SETSIZE];
@@ -511,7 +510,7 @@ void *socket_thread(void *arg) {
511510
if(FD_ISSET(listener, &read_fds)) {
512511
addrlen = sizeof remoteaddr;
513512
SockSet[nxt] = accept(listener, (struct sockaddr *)&remoteaddr, &addrlen);
514-
if(INVALID_SOCKET==SockSet[nxt]){O("accept() failed with %ld\n",WSAGetLastError()); exit(4);}
513+
if(INVALID_SOCKET==SockSet[nxt]){O("accept() failed with %d\n",WSAGetLastError()); exit(4);}
515514
else {
516515
wipe_tape(nxt);
517516
FD_SET(SockSet[nxt], &master); nfd++;

src/p.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
S lineA;
99
S lineB;
10-
__thread I fdc=1; // Flag denameD create
10+
I fdc=1; // Flag denameD create
1111
I fll=0; //flag line length
1212

1313
#if 0

src/r.c

+7-7
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ Z S rangematch(S p,C t,S r);
8989
#define __dvl "{x@&(#y)=y?/:x}"
9090
#define __gtime "{(_dj _ x % 86400; 100 _sv 24 60 60 _vsx x ! 86400)}"
9191
#define __hat "{:[(1~4:x)|(2~4:x); _f[!x;y];:[@y;_f[x;,y]; x _dvl y]]}"
92-
#define __in "{:[@y;x~y;:[~-2=4:y;1;~x~0n;1;0n=+/y];(#y)>y?x;0]}"
92+
#define __In "{:[@y;x~y;:[~-2=4:y;1;~x~0n;1;0n=+/y];(#y)>y?x;0]}"
9393
#define __inv "{((2##*x)#1,&#*x)_lsq x}"
9494
#define __lin "{{:[@y;x~y;:[~-2=4:y;1;~x~0n;1;0n=+/y];(#y)>y?x;0]}[;y]'x}"
9595
#define __mul "{x _dot\\:y}"
@@ -104,7 +104,7 @@ S_DYAD(dvl, __dvl)
104104
// 151013AP S_DYAD(di, "{:[@x;._f[. x;(!x)?/:y];x@&@[(#x)#1;y;:;0]]}")
105105
S_DYAD(di, __di)
106106
S_DYAD(dv, __dv)
107-
S_DYAD(in, __in)
107+
S_DYAD(in, __In)
108108
// 151012AP S_DYAD(lin, "{_in[;y]/:x}")
109109
//S_DYAD(lin, "{_in[;y]'x}")
110110
S_DYAD(lin, __lin)
@@ -116,7 +116,7 @@ S_TRIAD(ssr, __ssr) //missing a few things
116116

117117
K kdef(I n) {
118118
SW(n){CS(98,R X(__gtime)) CS(101,R X(__inv)) CS(107,R X(__binl)) CS(108,R X(__di)) CS(111,R X(__dv)) CS(112, R X(__dvl))
119-
CS(113,R X(__hat)) CS(114,R X(__in)) CS(115, R X(__lin)) CS(117, R X(__mul)) CS(121, R X(__sv)) CS(123, R X(__ssr)) }
119+
CS(113,R X(__hat)) CS(114,R X(__In)) CS(115, R X(__lin)) CS(117, R X(__mul)) CS(121, R X(__sv)) CS(123, R X(__ssr)) }
120120
R (K)0; }
121121

122122
#define W(x) x
@@ -748,15 +748,15 @@ Z void svdcmp(F **a, I m, I n, F *w, F **v, F *t)
748748
}
749749

750750
#ifdef WIN32
751-
I setenv(cS name, cS value, I overwrite)
751+
int setenv (const char *__string, const char *__value, int __overwrite)
752752
{
753753
I errcode = 0;
754-
if(!overwrite) {
754+
if(!__overwrite) {
755755
size_t envsize = 0;
756-
errcode = getenv_s(&envsize, NULL, 0, name);
756+
errcode = getenv_s(&envsize, NULL, 0, __string);
757757
if(errcode || envsize) R errcode;
758758
}
759-
R _putenv_s(name, value);
759+
R _putenv_s(__string, __value);
760760
}
761761
#endif
762762

src/tests.c

+2-6
Original file line numberDiff line numberDiff line change
@@ -645,7 +645,9 @@ Z I tests02()
645645
TC(1 0, ("a.c";"bc") _sm "*.[ch]")
646646
TC_("0 1", "($`one;$`two) _sm $`two")
647647
TC_("0 1", "`one `two _sm $`two")
648+
#ifndef WIN32
648649
TC_("$`xxx", "`hostname _setenv $`xxx; _getenv `hostname")
650+
#endif
649651
TC(".k", ."\\d a"; ."\\d .k"; $_d) // check for memory leaks
650652
TC(1 2, a:.((`b;1);(`c;2)); `a[`b`c])
651653
TC(3, a:1; \\b:2; c:3) // check: \b n
@@ -1081,15 +1083,9 @@ Z I testsBook()
10811083
TC(" abcd", 7$`abcd)
10821084
TC(" 2.35", 7.2 $ 2.345)
10831085
TC(" 714.00", 7.2 $ 714)
1084-
#ifdef WIN32
1085-
TC("1.2e-034", $ 1.2e-34)
1086-
TC("2.35e+000" , -9.2 $ 2.345)
1087-
TC("7.14e+002" , -9.2 $ 714)
1088-
#else
10891086
TC("1.2e-34", $ 1.2e-34)
10901087
TC("2.35e+00 " , -9.2 $ 2.345)
10911088
TC("7.14e+02 " , -9.2 $ 714)
1092-
#endif
10931089
TC(27, 0$"27")
10941090
TC(3.4, 0.0$"3.4")
10951091
TC(27.0 , 0.0$"27")

src/win/pread.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
#include <fcntl.h>
44
#include <unistd.h>
55

6-
size_t pread(int __fd,void* __buf,size_t __nbyte,off_t __off)
6+
ssize_t pread(int __fd,void* __buf,size_t __nbytes,off_t __offset)
77
{
8-
size_t ret;
8+
ssize_t ret;
99
off_t old = lseek(__fd,0,SEEK_CUR);
1010
if(old==(off_t)-1)return -1;
11-
if(-1==lseek(__fd,__off,SEEK_SET))return -1;
12-
ret=read(__fd,__buf,__nbyte);
11+
if(-1==lseek(__fd,__offset,SEEK_SET))return -1;
12+
ret=read(__fd,__buf,__nbytes);
1313
lseek(__fd,old,SEEK_SET);
1414
return ret;
1515
}

0 commit comments

Comments
 (0)