int fill,xsize,size;
+ if(!(bmp->mode&WRITE)) {
+ dprintf(bmp->outfd,"[bmp] write mode not specified\n");
+ return B_WRONG_MODE;
+ }
+
xsize=bmp->width*3;
fill=(4-(xsize%4))%4;
size=(xsize+fill)*bmp->height;
bmp->info.ic=0;
/* write it */
- ...
+ if((bmp->fd=open(bmp->file,O_WRONLY)<0) {
+ dprintf(bmp->outfd,"[bmp] unable to open file %s\n",bmp->file);
+ return B_NO_FILE;
+ }
+
+ if(write(bmp->fd,&(bmp->hdr),BMP_H_SIZE)<BMP_H_SIZE) {
+ dprintf(bmp->outfd,"[bmp] unable to write bmp header\n");
+ return B_E_WRITE_DATA;
+ }
+
+ if(write(bmp->fd,&(bmp->info),BMP_I_SIZE)<BMP_I_SIZE) {
+ dprintf(bmp->outfd,"[bmp] unable to write bmp info\n");
+ return B_E_WRITE_DATA;
+ }
return B_SUCCESS;
if(!(bmp->mode&READ)) {
dprintf(bmp->outfd,"[bmp] read mode not specified");
- return B_NO_READ_MODE;
+ return B_WRONG_MODE;
}
if((bmp->fd=open(bmp->file,O_RDONLY))<0) {