equal
deleted
inserted
replaced
19 |
19 |
20 FileStream comment:' |
20 FileStream comment:' |
21 COPYRIGHT (c) 1989 by Claus Gittinger |
21 COPYRIGHT (c) 1989 by Claus Gittinger |
22 All Rights Reserved |
22 All Rights Reserved |
23 |
23 |
24 $Header: /cvs/stx/stx/libbasic/FileStream.st,v 1.24 1995-09-16 17:13:21 claus Exp $ |
24 $Header: /cvs/stx/stx/libbasic/FileStream.st,v 1.25 1995-11-02 20:10:52 cg Exp $ |
25 '! |
25 '! |
26 |
26 |
27 !FileStream class methodsFor:'documentation'! |
27 !FileStream class methodsFor:'documentation'! |
28 |
28 |
29 copyright |
29 copyright |
40 " |
40 " |
41 ! |
41 ! |
42 |
42 |
43 version |
43 version |
44 " |
44 " |
45 $Header: /cvs/stx/stx/libbasic/FileStream.st,v 1.24 1995-09-16 17:13:21 claus Exp $ |
45 $Header: /cvs/stx/stx/libbasic/FileStream.st,v 1.25 1995-11-02 20:10:52 cg Exp $ |
46 " |
46 " |
47 ! |
47 ! |
48 |
48 |
49 documentation |
49 documentation |
50 " |
50 " |
398 } while ((f == NULL) && (errno == EINTR)); |
398 } while ((f == NULL) && (errno == EINTR)); |
399 if (f == NULL) { |
399 if (f == NULL) { |
400 _INST(lastErrorNumber) = _MKSMALLINT(errno); |
400 _INST(lastErrorNumber) = _MKSMALLINT(errno); |
401 _INST(position) = nil; |
401 _INST(position) = nil; |
402 } else { |
402 } else { |
403 _INST(filePointer) = MKOBJ((int)f); |
403 _INST(filePointer) = __MKOBJ((int)f); |
404 _INST(position) = _MKSMALLINT(1); |
404 _INST(position) = _MKSMALLINT(1); |
405 retVal = self; |
405 retVal = self; |
406 } |
406 } |
407 } |
407 } |
408 %}. |
408 %}. |
507 #ifdef transputer |
507 #ifdef transputer |
508 FILE *f; |
508 FILE *f; |
509 int size; |
509 int size; |
510 |
510 |
511 if (_INST(filePointer) != nil) { |
511 if (_INST(filePointer) != nil) { |
512 f = (FILE *)MKFD(_INST(filePointer)); |
512 f = __FILEVal(_INST(filePointer)); |
513 if ((size = filesize(fileno(f))) >= 0) { |
513 if ((size = filesize(fileno(f))) >= 0) { |
514 RETURN ( _MKSMALLINT(size) ); |
514 RETURN ( _MKSMALLINT(size) ); |
515 } |
515 } |
516 } |
516 } |
517 #else |
517 #else |
519 struct stat buf; |
519 struct stat buf; |
520 int ret; |
520 int ret; |
521 int fd; |
521 int fd; |
522 |
522 |
523 if (_INST(filePointer) != nil) { |
523 if (_INST(filePointer) != nil) { |
524 f = (FILE *)MKFD(_INST(filePointer)); |
524 f = __FILEVal(_INST(filePointer)); |
525 fd = fileno(f); |
525 fd = fileno(f); |
526 do { |
526 do { |
527 ret = fstat(fd, &buf); |
527 ret = fstat(fd, &buf); |
528 } while ((ret < 0) && (errno == EINTR)); |
528 } while ((ret < 0) && (errno == EINTR)); |
529 if (ret >= 0) { |
529 if (ret >= 0) { |
555 |
555 |
556 FILE *f; |
556 FILE *f; |
557 long currentPosition; |
557 long currentPosition; |
558 |
558 |
559 if (_INST(filePointer) != nil) { |
559 if (_INST(filePointer) != nil) { |
560 f = (FILE *)MKFD(_INST(filePointer)); |
560 f = __FILEVal(_INST(filePointer)); |
561 do { |
561 do { |
562 if (_INST(buffered) == true) { |
562 if (_INST(buffered) == true) { |
563 currentPosition = (long) ftell(f); |
563 currentPosition = (long) ftell(f); |
564 } else { |
564 } else { |
565 currentPosition = (long) lseek(fileno(f), 0L, SEEK_CUR); |
565 currentPosition = (long) lseek(fileno(f), 0L, SEEK_CUR); |
588 int ret; |
588 int ret; |
589 OBJ fp; |
589 OBJ fp; |
590 |
590 |
591 if ((fp = _INST(filePointer)) != nil) { |
591 if ((fp = _INST(filePointer)) != nil) { |
592 if (__isSmallInteger(newPos)) { |
592 if (__isSmallInteger(newPos)) { |
593 f = (FILE *)MKFD(fp); |
593 f = __FILEVal(fp); |
594 /* |
594 /* |
595 * notice: Smalltalk index starts at 1 |
595 * notice: Smalltalk index starts at 1 |
596 */ |
596 */ |
597 do { |
597 do { |
598 if (_INST(buffered) == true) { |
598 if (_INST(buffered) == true) { |
624 %{ |
624 %{ |
625 FILE *f; |
625 FILE *f; |
626 int ret; |
626 int ret; |
627 |
627 |
628 if (_INST(filePointer) != nil) { |
628 if (_INST(filePointer) != nil) { |
629 f = (FILE *)MKFD(_INST(filePointer)); |
629 f = __FILEVal(_INST(filePointer)); |
630 _INST(position) = nil; |
630 _INST(position) = nil; |
631 do { |
631 do { |
632 if (_INST(buffered) == true) { |
632 if (_INST(buffered) == true) { |
633 ret = fseek(f, 0L, SEEK_END); |
633 ret = fseek(f, 0L, SEEK_END); |
634 } else { |
634 } else { |