Index: soft/giet_vm/applications/rosenfeld/src/bmpNR.c
===================================================================
--- soft/giet_vm/applications/rosenfeld/src/bmpNR.c	(revision 798)
+++ soft/giet_vm/applications/rosenfeld/src/bmpNR.c	(revision 821)
@@ -11,6 +11,4 @@
 #include <math.h>
 
-/* -- image -- */
-#ifdef CLI
 #include "nrc_os_config.h"
 #include "nrtype.h"
@@ -18,5 +16,4 @@
 #include "nrmacro.h"
 #include "nralloc.h"
-#endif
 
 #if TARGET_OS == LINUX
@@ -37,23 +34,19 @@
 #define BI_RGB 0L
 
-PRIVATE void ReadBMProw  (int fd, long width, uint8 * row);
-PRIVATE void WriteBMProw (uint8 * row, long width, int fd);
-//PRIVATE void SetupPalette (RGBQUAD Palette[]);
-
-#if (!defined(WIN32) && !defined(_WINDOWS_) && !defined(_WINGDI_))
-//#pragma message("bmpio.h no WINDOWS echo")
-PRIVATE void Palette_RGBQuad2RGBQUAD(RGBQuad * src, RGBQUAD dst[]);
-#endif
-
-/* ------------------------------------- */
-uint8 *ui8ArrayAppend(uint8 *ptr, uint8 x)
-    /* ------------------------------------- */
+static void ReadBMProw(int fd, long width, uint8 * row);
+static void WriteBMProw(uint8 * row, long width, int fd);
+static void Palette_RGBQuad2RGBQUAD(RGBQuad * src, RGBQUAD dst[]);
+
+/* --------------------------------------- */
+uint8 * ui8ArrayAppend(uint8 * ptr, uint8 x)
+/* --------------------------------------- */
 {
     *ptr++ = x;
     return ptr;
 }
+
 /* ---------------------------------------- */
-uint8 *ui16ArrayAppend(uint8 *ptr, uint16 x)
-    /* ---------------------------------------- */
+uint8 * ui16ArrayAppend(uint8 * ptr, uint16 x)
+/* ---------------------------------------- */
 {
     uint8 x0, x1;
@@ -67,7 +60,8 @@
     return ptr;
 }
-/* -------------------------------------- */
-uint8 *ui32ArrayAppend(uint8 *ptr, uint32 x)
-    /* -------------------------------------- */
+
+/* ---------------------------------------- */
+uint8 * ui32ArrayAppend(uint8 * ptr, uint32 x)
+/* ---------------------------------------- */
 {
     uint8 x0, x1, x2, x3;
@@ -85,25 +79,26 @@
     return ptr;
 }
+
 // Seul moyen de cache dans la librairie ces putains de types windoze
 
 // --------------------------------------------------------
-PRIVATE void ReadBMProw(int fd, long width, uint8 *row)
-    // --------------------------------------------------------
+static void ReadBMProw(int fd, long width, uint8 * row)
+// --------------------------------------------------------
 {
     // Le fichier est ouvert (en lecture) et ne sera pas ferme a la fin
     read(fd, row, sizeof(uint8) * width);
 }
+
 // ---------------------------------------------------------
-PRIVATE void WriteBMProw(uint8 *row, long width, int fd)
-    // ---------------------------------------------------------
+static void WriteBMProw(uint8 * row, long width, int fd)
+// ---------------------------------------------------------
 {
     // Le fichier est deja ouvert et ne sera pas ferme a la fin
     write(fd, row, sizeof(uint8) * width);
 }
-#if (!defined(WIN32) && !defined(_WINDOWS_) && !defined(_WINGDI_))
-//#pragma message("bmpio.h no WINDOWS echo")
+
 /* ----------------------------------------------------------- */
-PRIVATE void Palette_RGBQuad2RGBQUAD(RGBQuad *src, RGBQUAD dst[])
-    /* ----------------------------------------------------------- */
+static void Palette_RGBQuad2RGBQUAD(RGBQuad * src, RGBQUAD dst[])
+/* ----------------------------------------------------------- */
 {
     int i;
@@ -115,31 +110,20 @@
     }
 }
-#endif
-
-#if (!defined(WIN32) && !defined(_WINDOWS_) && !defined(_WINGDI_))
-//#pragma message("bmpio.h no WINDOWS echo")
-/* --------------------------------------------------------------------------- */
-IMAGE_EXPORT(int) SaveBMP0_ui8matrix(uint8 **m, int width, int height, RGBQuad *palette_RGBQuad, char *filename)
+
+IMAGE_EXPORT(int) SaveBMP0_ui8matrix(uint8 ** m, int width, int height, RGBQuad * palette_RGBQuad, char * filename)
     /* --------------------------------------------------------------------------- */
     /* sauvegarde 'image' au format bmp dans le fichier 'filename' */
 {
-    int rc = 0;
-
     int v_offset = 0; // no more implemented image->v_offset;
     int h_offset = 0; // no more implemented image->h_offset;
     int vmax = height - v_offset;
-    //int hmax = width - h_offset;
-    int height_utile = height - 2*v_offset;
-    int width_utile = width - 2*h_offset;
+    int height_utile = height - 2 * v_offset;
+    int width_utile = width - 2 * h_offset;
     int taille_utile  = height_utile * width_utile;
 
-    //int size;
     int padding_len;
 
     BITMAPFILEHEADER Bitmap_File_Header;
-    /*BITMAPINFO;      Bitmap_Info; */
-
     BITMAPINFOHEADER Bitmap_Info_Header;
-    /*RGBQUAD          RGB_Quad; */
 
     RGBQUAD palette_RGBQUAD[256]; /* Windows */
@@ -156,11 +140,10 @@
 
     /* --- Header --- */
-    Bitmap_File_Header.bfType      = (WORD) BM;   /* BM                            */
-    Bitmap_File_Header.bfSize      = (DWORD) sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+256*sizeof(RGBQuad)+taille_utile;    /* taille avec header et palette */
-    Bitmap_File_Header.bfReserved1 = (WORD) 0; /* 0                             */
-    Bitmap_File_Header.bfReserved2 = (WORD) 0; /* 0                             */
-    Bitmap_File_Header.bfOffBits   = (DWORD) sizeof(BITMAPFILEHEADER) +
-        (DWORD) sizeof(BITMAPINFOHEADER) +
-        (DWORD) sizeof(RGBQUAD)*256;   /* */
+    Bitmap_File_Header.bfType      = (WORD) BM;   /* BM */
+    /* taille avec header et palette */
+    Bitmap_File_Header.bfSize      = (DWORD) sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQuad) + taille_utile;
+    Bitmap_File_Header.bfReserved1 = (WORD) 0; /* 0 */
+    Bitmap_File_Header.bfReserved2 = (WORD) 0; /* 0 */
+    Bitmap_File_Header.bfOffBits   = (DWORD) sizeof(BITMAPFILEHEADER) + (DWORD) sizeof(BITMAPINFOHEADER) + (DWORD) sizeof(RGBQUAD)*256;   /* */
 
 
@@ -182,5 +165,6 @@
     fd = open(filename, O_CREAT | O_TRUNC);
     if (fd < 0) {
-        printf("*** Erreur : Ouverture du fichier impossible dans SaveBMP");
+        printf("\n*** Erreur : Ouverture du fichier impossible dans SaveBMP\n");
+        return -1;
     }
 
@@ -215,16 +199,14 @@
     }
     close(fd);
-    return rc;
-
-}
-#endif
-// ------------------------------------------------------------------------------------------------------------
-IMAGE_EXPORT(int) SaveBMP2_ui8matrix(uint8 **m, int width, int height, RGBQuad *palette_RGBQuad, char *filename)
-    // ------------------------------------------------------------------------------------------------------------
-    // sauvegarde 'image' au format bmp dans le fichier 'filename'
+    return 0;
+
+}
+
+// ----------------------------------------------------------------------------------------------------------------
+IMAGE_EXPORT(int) SaveBMP2_ui8matrix(uint8 ** m, int width, int height, RGBQuad * palette_RGBQuad, char * filename)
+// ----------------------------------------------------------------------------------------------------------------
+// sauvegarde 'image' au format bmp dans le fichier 'filename'
 {
     int taille_utile  = height * width;
-
-    //int size;
     int padding_len;
 
@@ -241,7 +223,4 @@
     int fd;
     int  i;
-
-    //#pragma message("BMP warnin' data structure aligment must be 2")
-    //#pragma message("  sizeof( BitmapFileHeader) must = 14, not 16")
 
     //DEBUG(printf("BMP0 : %d %d\n", sizeof( BITMAPFILEHEADER), sizeof( BITMAPINFOHEADER)));
@@ -298,7 +277,12 @@
     //printf("   SaveBMP %s %dx%d\n", filename, width, height);
 
-    fd = open(filename, O_CREAT | O_TRUNC);
+#if TARGET_OS != GIETVM
+    fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
+#else
+    fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC);
+#endif
     if (fd < 0) {
-        printf("*** Erreur : ouverture du fichier '%s' impossible dans SaveBMP", filename);
+        printf("\n*** Erreur : ouverture du fichier '%s' impossible dans SaveBMP\n", filename);
+        return -1;
     }
 
@@ -326,5 +310,4 @@
 
 
-    // en 2x car le compilo est trop con ...
     padding_len = width % 4;
     padding_len = (4 - padding_len) % 4;
