| 1165 | | |
| 1166 | | #if 0 |
| 1167 | | static int |
| 1168 | | nc_sync(int ncid) |
| 1169 | | { |
| 1170 | | int status; |
| 1171 | | NC *ncp; |
| 1172 | | |
| 1173 | | status = ncmpii_NC_check_id(ncid, &ncp); |
| 1174 | | if(status != NC_NOERR) |
| 1175 | | return status; |
| 1176 | | |
| 1177 | | if(NC_indef(ncp)) |
| 1178 | | return NC_EINDEFINE; |
| 1179 | | |
| 1180 | | if(NC_readonly(ncp)) |
| 1181 | | { |
| 1182 | | return ncmpii_read_NC(ncp); |
| 1183 | | } |
| 1184 | | /* else, read/write */ |
| 1185 | | |
| 1186 | | status = ncmpii_NC_sync(ncp); |
| 1187 | | if(status != NC_NOERR) |
| 1188 | | return status; |
| 1189 | | |
| 1190 | | return ncp->nciop->sync(ncp->nciop); |
| 1191 | | } |
| 1192 | | |
| 1193 | | |
| 1194 | | static int |
| 1195 | | nc_set_fill(int ncid, |
| 1196 | | int fillmode, int *old_mode_ptr) |
| 1197 | | { |
| 1198 | | int status; |
| 1199 | | NC *ncp; |
| 1200 | | int oldmode; |
| 1201 | | |
| 1202 | | status = ncmpii_NC_check_id(ncid, &ncp); |
| 1203 | | if(status != NC_NOERR) |
| 1204 | | return status; |
| 1205 | | |
| 1206 | | if(NC_readonly(ncp)) |
| 1207 | | return NC_EPERM; |
| 1208 | | |
| 1209 | | oldmode = fIsSet(ncp->flags, NC_NOFILL) ? NC_NOFILL : NC_FILL; |
| 1210 | | |
| 1211 | | if(fillmode == NC_NOFILL) |
| 1212 | | { |
| 1213 | | fSet(ncp->flags, NC_NOFILL); |
| 1214 | | } |
| 1215 | | else if(fillmode == NC_FILL) |
| 1216 | | { |
| 1217 | | if(fIsSet(ncp->flags, NC_NOFILL)) |
| 1218 | | { |
| 1219 | | /* |
| 1220 | | * We are changing back to fill mode |
| 1221 | | * so do a sync |
| 1222 | | */ |
| 1223 | | status = ncmpii_NC_sync(ncp); |
| 1224 | | if(status != NC_NOERR) |
| 1225 | | return status; |
| 1226 | | } |
| 1227 | | fClr(ncp->flags, NC_NOFILL); |
| 1228 | | } |
| 1229 | | else |
| 1230 | | { |
| 1231 | | return NC_EINVAL; /* Invalid fillmode */ |
| 1232 | | } |
| 1233 | | |
| 1234 | | if(old_mode_ptr != NULL) |
| 1235 | | *old_mode_ptr = oldmode; |
| 1236 | | |
| 1237 | | return NC_NOERR; |
| 1238 | | } |
| 1239 | | #endif |
| 1240 | | |