@@ -85,18 +85,11 @@ fn new_buf_reader(str path) -> buf_reader {
85
85
ret fd_buf_reader ( fd, new_buf ( ) ) ;
86
86
}
87
87
88
- /**
89
- * FIXME (issue #150): This should be
90
- *
91
- * type fileflag = tag(append(), create(), truncate());
92
- *
93
- * but then the tag value ctors are not found from crate-importers of std, so
94
- * we manually simulate the enum below.
95
- */
96
- type fileflag = uint ;
97
- fn append ( ) -> uint { ret 0 u; }
98
- fn create ( ) -> uint { ret 1 u; }
99
- fn truncate ( ) -> uint { ret 2 u; }
88
+ tag fileflag {
89
+ append;
90
+ create;
91
+ truncate;
92
+ }
100
93
101
94
fn new_buf_writer ( str path , vec[ fileflag] flags ) -> buf_writer {
102
95
@@ -129,13 +122,9 @@ fn new_buf_writer(str path, vec[fileflag] flags) -> buf_writer {
129
122
130
123
for ( fileflag f in flags) {
131
124
alt ( f) {
132
- // FIXME (issue #150): cf comment above defn of fileflag type
133
- //case (append()) { fflags |= os.libc_constants.O_APPEND(); }
134
- //case (create()) { fflags |= os.libc_constants.O_CREAT(); }
135
- //case (truncate()) { fflags |= os.libc_constants.O_TRUNC(); }
136
- case ( 0 u) { fflags |= os. libc_constants. O_APPEND ( ) ; }
137
- case ( 1 u) { fflags |= os. libc_constants. O_CREAT ( ) ; }
138
- case ( 2 u) { fflags |= os. libc_constants. O_TRUNC ( ) ; }
125
+ case ( append) { fflags |= os. libc_constants. O_APPEND ( ) ; }
126
+ case ( create) { fflags |= os. libc_constants. O_CREAT ( ) ; }
127
+ case ( truncate) { fflags |= os. libc_constants. O_TRUNC ( ) ; }
139
128
}
140
129
}
141
130
0 commit comments