Index: /trunk/Mars/mcore/ofits.h
===================================================================
--- /trunk/Mars/mcore/ofits.h	(revision 17223)
+++ /trunk/Mars/mcore/ofits.h	(revision 17224)
@@ -30,4 +30,5 @@
 #endif
 
+#include "FITS.h"
 #include "checksum.h"
 
@@ -649,20 +650,6 @@
     }
 
-    virtual bool AddColumn(uint32_t cnt, char typechar, const string& name, const string& unit, const BlockHeaderWriter& header, const string& comment="", bool addHeaderKeys=true)
-    {
-        return AddColumn(cnt, typechar, name, unit, comment, addHeaderKeys);
-    }
-    virtual bool AddColumn(const string& compressionScheme, uint32_t cnt, char typechar, const string& name, const string& unit,  const string& comment="", bool addHeaderKeys=true)
-    {
-        if (compressionScheme != "" &&
-            compressionScheme != "RAW")
-        {
-#ifdef __EXCEPTIONS
-            throw runtime_error("Trying to add a compressed column to an uncompressed file");
-#else
-            gLog << ___err___ << "ERROR - Trying to add a compressed column to an uncompressed file" << endl;
-            return false;
-#endif
-        }
+    virtual bool AddColumn(const FITS::Compression&, uint32_t cnt, char typechar, const string& name, const string& unit,  const string& comment="", bool addHeaderKeys=true)
+    {
         return AddColumn(cnt, typechar, name, unit, comment, addHeaderKeys);
     }
@@ -702,4 +689,38 @@
     { return AddColumn(1, 'L', name, unit, comment); }
 
+    bool AddColumnShort(const FITS::Compression &comp, uint32_t cnt, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, cnt, 'I', name, unit, comment); }
+    bool AddColumnInt(const FITS::Compression &comp, uint32_t cnt, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, cnt, 'J', name, unit, comment); }
+    bool AddColumnLong(const FITS::Compression &comp, uint32_t cnt, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, cnt, 'K', name, unit, comment); }
+    bool AddColumnFloat(const FITS::Compression &comp, uint32_t cnt, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, cnt, 'E', name, unit, comment); }
+    bool AddColumnDouble(const FITS::Compression &comp, uint32_t cnt, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, cnt, 'D', name, unit, comment); }
+    bool AddColumnChar(const FITS::Compression &comp, uint32_t cnt, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, cnt, 'A', name, unit, comment); }
+    bool AddColumnByte(const FITS::Compression &comp, uint32_t cnt, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, cnt, 'B', name, unit, comment); }
+    bool AddColumnBool(const FITS::Compression &comp, uint32_t cnt, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, cnt, 'L', name, unit, comment); }
+
+    bool AddColumnShort(const FITS::Compression &comp, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, 1, 'I', name, unit, comment); }
+    bool AddColumnInt(const FITS::Compression &comp, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, 1, 'J', name, unit, comment); }
+    bool AddColumnLong(const FITS::Compression &comp, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, 1, 'K', name, unit, comment); }
+    bool AddColumnFloat(const FITS::Compression &comp, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, 1, 'E', name, unit, comment); }
+    bool AddColumnDouble(const FITS::Compression &comp, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, 1, 'D', name, unit, comment); }
+    bool AddColumnChar(const FITS::Compression &comp, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, 1, 'A', name, unit, comment); }
+    bool AddColumnByte(const FITS::Compression &comp, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, 1, 'B', name, unit, comment); }
+    bool AddColumnBool(const FITS::Compression &comp, const string &name, const string &unit="", const string &comment="")
+    { return AddColumn(comp, 1, 'L', name, unit, comment); }
+
     /*
     bool AddKey(string key, double d, const string &comment)
