Switch to compiler-tester
[mono.git] / mcs / class / Microsoft.VisualBasic / Microsoft.VisualBasic / FileSystem.cs
index bb47a98d73fed63deaed9bb5b119c5379556d190..ced3cc1091150e25f02621c89913077eacac48e9 100644 (file)
@@ -28,6 +28,7 @@ using System.Text;
 using System.Collections;
 using System.Globalization;
 using Microsoft.VisualBasic;
+using System.Runtime.InteropServices;
 using Microsoft.VisualBasic.CompilerServices;
 
 /**
@@ -59,8 +60,6 @@ namespace Microsoft.VisualBasic
 
                public static void Reset()
                {
-                       Object value;
-
                        ICollection s = _openFilesMap.Keys;
 
                        int [] iArr = new int[s.Count];
@@ -122,12 +121,9 @@ namespace Microsoft.VisualBasic
                                            int fileNumber,
                                            String fileName,
                                            OpenMode mode,
-                                           [System.Runtime.InteropServices.Optional] 
-                                           [System.ComponentModel.DefaultValue(-1)] OpenAccess access, 
-                                           [System.Runtime.InteropServices.Optional]  
-                                           [System.ComponentModel.DefaultValue(-1)] OpenShare share, 
-                                           [System.Runtime.InteropServices.Optional] 
-                                           [System.ComponentModel.DefaultValue(-1)] int recordLength)
+                                           [Optional, __DefaultArgumentValue((int)(-1))] OpenAccess access, 
+                                           [Optional, __DefaultArgumentValue((int)(-1))] OpenShare share, 
+                                           [Optional, __DefaultArgumentValue(-1)] int recordLength)
 
                {
                        if (!isFileNumberFree(fileNumber))
@@ -163,8 +159,7 @@ namespace Microsoft.VisualBasic
 
                public static void FilePut(int fileNumber,
                                           bool value,
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] long  recordNumber)
+                                          [Optional, __DefaultArgumentValue((long)-1)] long  recordNumber)
                {
                        checkRecordNumber(recordNumber,false);
                        VBFile vbFile = getVBFile(fileNumber);
@@ -174,8 +169,7 @@ namespace Microsoft.VisualBasic
 
                public static void FilePut(int fileNumber, 
                                           byte value, 
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] long  recordNumber)
+                                          [Optional, __DefaultArgumentValue((long)-1)] long  recordNumber)
                {
                        checkRecordNumber(recordNumber,false);
                        VBFile vbFile = getVBFile(fileNumber);
@@ -184,8 +178,7 @@ namespace Microsoft.VisualBasic
 
                public static void FilePut(int fileNumber, 
                                           short value, 
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] long  recordNumber)
+                                          [Optional, __DefaultArgumentValue((long)-1)] long  recordNumber)
                {
                        checkRecordNumber(recordNumber,false);
                        VBFile vbFile = getVBFile(fileNumber);
@@ -195,8 +188,7 @@ namespace Microsoft.VisualBasic
 
                public static void FilePut(int fileNumber, 
                                           char value, 
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] long  recordNumber)
+                                          [Optional, __DefaultArgumentValue((long)-1)] long  recordNumber)
                {
                        checkRecordNumber(recordNumber,false);
                        VBFile vbFile = getVBFile(fileNumber);
@@ -205,8 +197,7 @@ namespace Microsoft.VisualBasic
 
                public static void FilePut(int fileNumber, 
                                           int value, 
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] long  recordNumber)
+                                          [Optional, __DefaultArgumentValue((long)-1)] long  recordNumber)
                {
                        checkRecordNumber(recordNumber,false);
                        VBFile vbFile = getVBFile(fileNumber);
@@ -215,8 +206,7 @@ namespace Microsoft.VisualBasic
 
                public static void FilePut(int fileNumber, 
                                           long value, 
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] long  recordNumber)
+                                          [Optional, __DefaultArgumentValue((long)-1)] long  recordNumber)
                {
                        checkRecordNumber(recordNumber,false);
                        VBFile vbFile = getVBFile(fileNumber);
@@ -226,8 +216,7 @@ namespace Microsoft.VisualBasic
 
                public static void FilePut(int fileNumber, 
                                           float value, 
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] long  recordNumber)
+                                          [Optional, __DefaultArgumentValue((long)-1)] long  recordNumber)
                {
                        checkRecordNumber(recordNumber,false);
                        VBFile vbFile = getVBFile(fileNumber);
@@ -236,8 +225,7 @@ namespace Microsoft.VisualBasic
 
                public static void FilePut(int fileNumber, 
                                           double value, 
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] long  recordNumber)
+                                          [Optional, __DefaultArgumentValue((long)-1)] long  recordNumber)
                {
                        checkRecordNumber(recordNumber,false);
                        VBFile vbFile = getVBFile(fileNumber);
@@ -246,10 +234,8 @@ namespace Microsoft.VisualBasic
 
                public static void FilePut(int fileNumber,
                                           String value,
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber,
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(false)] bool stringIsFixedLength)
+                                          [Optional, __DefaultArgumentValue((long)-1)] long recordNumber,
+                                          [Optional, __DefaultArgumentValue(false)] bool stringIsFixedLength)
                {
                        checkRecordNumber(recordNumber,true);
                        VBFile vbFile = getVBFile(fileNumber);
@@ -258,25 +244,13 @@ namespace Microsoft.VisualBasic
 
                public static void FilePut(int fileNumber,
                                           DateTime value,
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] long  recordNumber)
+                                          [Optional, __DefaultArgumentValue((long)-1)] long  recordNumber)
                {
                        checkRecordNumber(recordNumber,false);
                        VBFile vbFile = getVBFile(fileNumber);
                        vbFile.put(value,recordNumber);
                }
 
-               public static void FileGet(int fileNumber,
-                                          ref bool value,
-                                          [System.Runtime.InteropServices.Optional] 
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber) 
-
-               {
-                       checkRecordNumber(recordNumber,false);
-                       VBFile vbFile = getVBFile(fileNumber);
-                       vbFile.get(out value,recordNumber);
-               }
-
                private static void checkRecordNumber(long recordNumber,bool throwArgExc)
                {
                        if ((recordNumber < 1) && (recordNumber != -1))
@@ -327,10 +301,20 @@ namespace Microsoft.VisualBasic
                }
 
                public static void FileGet(
-                                          int fileNumber,
-                                          ref byte value,
-                                          [System.Runtime.InteropServices.Optional] 
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber) 
+                               int fileNumber,
+                               ref byte value,
+                               [Optional, __DefaultArgumentValue((long)-1)] long recordNumber) 
+
+               {
+                       checkRecordNumber(recordNumber,false);
+                       VBFile vbFile = getVBFile(fileNumber);
+                       vbFile.get(out value,recordNumber);
+               }
+
+               public static void FileGet(
+                               int fileNumber,
+                               ref bool value,
+                               [Optional, __DefaultArgumentValue((long)-1)] long recordNumber) 
 
                {
                        checkRecordNumber(recordNumber,false);
@@ -339,10 +323,9 @@ namespace Microsoft.VisualBasic
                }
 
                public static void FileGet(
-                                          int fileNumber,
-                                          ref short value,
-                                          [System.Runtime.InteropServices.Optional] 
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber) 
+                               int fileNumber,
+                               ref short value,
+                               [Optional, __DefaultArgumentValue((long)-1)] long recordNumber) 
 
                {
                        checkRecordNumber(recordNumber,false);
@@ -351,10 +334,9 @@ namespace Microsoft.VisualBasic
                }
 
                public static void FileGet(
-                                          int fileNumber,
-                                          ref char value,
-                                          [System.Runtime.InteropServices.Optional] 
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber) 
+                               int fileNumber,
+                               ref char value,
+                               [Optional, __DefaultArgumentValue((long)-1)] long recordNumber) 
 
 
                {
@@ -364,40 +346,40 @@ namespace Microsoft.VisualBasic
                }
 
 
-               public static void FileGet(int fileNumber, 
-                                          ref int value,
-                                          [System.Runtime.InteropServices.Optional] 
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber) 
+               public static void FileGet(
+                               int fileNumber, 
+                               ref int value,
+                               [Optional, __DefaultArgumentValue((long)-1)] long recordNumber) 
                {
                        checkRecordNumber(recordNumber,false);
                        VBFile vbFile = getVBFile(fileNumber);
                        vbFile.get(out value,recordNumber);
                }
 
-               public static void FileGet(int fileNumber, 
-                                          ref long value
-                                          [System.Runtime.InteropServices.Optional] 
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber) 
+               public static void FileGet(
+                               int fileNumber
+                               ref long value, 
+                               [Optional, __DefaultArgumentValue((long)-1)] long recordNumber) 
                {
                        checkRecordNumber(recordNumber,false);
                        VBFile vbFile = getVBFile(fileNumber);
                        vbFile.get(out value,recordNumber);
                }
 
-               public static void FileGet(int fileNumber,
-                                          ref float value,
-                                          [System.Runtime.InteropServices.Optional] 
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber) 
+               public static void FileGet(
+                               int fileNumber,
+                               ref float value,
+                               [Optional, __DefaultArgumentValue((long)-1)] long recordNumber) 
                {
                        checkRecordNumber(recordNumber,false);
                        VBFile vbFile = getVBFile(fileNumber);
                        vbFile.get(out value,recordNumber);
                }
 
-               public static void FileGet(int fileNumber,
-                                          ref double value,
-                                          [System.Runtime.InteropServices.Optional] 
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber) 
+               public static void FileGet(
+                               int fileNumber,
+                               ref double value,
+                               [Optional, __DefaultArgumentValue((long)-1)] long recordNumber) 
                                           
                {
                        checkRecordNumber(recordNumber,false);
@@ -405,10 +387,10 @@ namespace Microsoft.VisualBasic
                        vbFile.get(out value,recordNumber);
                }
 
-               public static void FileGet(int fileNumber,
-                                          ref Decimal value,
-                                          [System.Runtime.InteropServices.Optional] 
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber) 
+               public static void FileGet(
+                               int fileNumber,
+                               ref Decimal value,
+                               [Optional, __DefaultArgumentValue((long)-1)] long recordNumber) 
                                           
                {
                        checkRecordNumber(recordNumber,false);
@@ -416,26 +398,47 @@ namespace Microsoft.VisualBasic
                        vbFile.get(out value,recordNumber);
                }
 
-               public static void FileGet(int fileNumber,
-                                          ref string value,
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber,
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(false)] bool bIgnored)
+               public static void FileGet(
+                               int fileNumber,
+                               ref string value,
+                               [Optional, __DefaultArgumentValue((long)-1)] long recordNumber,
+                               [Optional, __DefaultArgumentValue(false)] bool stringIsFixedLength)
                {
                        checkRecordNumber(recordNumber,true);
                        VBFile vbFile = getVBFile(fileNumber);
-                       vbFile.get(ref value,recordNumber,bIgnored);
+                       vbFile.get(ref value,recordNumber,stringIsFixedLength);
                }
 
-               public static void FileGet(int fileNumber,
-                                          ref Object value,
-                                          [System.Runtime.InteropServices.Optional] 
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber) 
+               public static void FileGet(
+                               int fileNumber,
+                               ref DateTime value,
+                               [Optional, __DefaultArgumentValue((long)-1)] long recordNumber)
+
                {
-                       checkRecordNumber(recordNumber,false);
+                       checkRecordNumber(recordNumber,true);
+                       VBFile vbFile = getVBFile(fileNumber);
+                       vbFile.get(out value,recordNumber);
+               }
+
+               [MonoTODO]
+               public static void FileGet(
+                               int fileNumber, 
+                               ref ValueType value, 
+                               [Optional, __DefaultArgumentValue((long)-1)] long recordNumber) 
+               {
+                       throw new NotImplementedException();
+               }
+
+               public static void FileGet(
+                               int fileNumber,
+                               ref Array value,
+                               [Optional, __DefaultArgumentValue((long)-1)] long recordNumber, 
+                               [Optional, __DefaultArgumentValue(false)] bool arrayIsDynamic, 
+                               [Optional, __DefaultArgumentValue(false)] bool stringIsFixedLength) 
+               {
+                       checkRecordNumber(recordNumber,true);
                        VBFile vbFile = getVBFile(fileNumber);
-                       vbFile.get(ref value,recordNumber);
+                       vbFile.get(ref value,recordNumber,arrayIsDynamic,stringIsFixedLength);
                }
 
                public static long Seek(int fileNumber)
@@ -468,8 +471,6 @@ namespace Microsoft.VisualBasic
                        VBFile vbFile = getVBFile(fileNumber);
                        if (value != null)
                        {
-                               Type type = null;
-
                                if (value is bool) {
                                        bool tmp;
                                        vbFile.Input(out tmp);
@@ -550,11 +551,12 @@ namespace Microsoft.VisualBasic
                        vbFile.print(output);
                }
 
-               public static void PrintLine(int fileNumber)
-               {
-                       VBFile vbFile = getVBFile(fileNumber);
-                       vbFile.printLine(null);
-               }
+// Seems not to exist in MS's 1.1 implementation as told by class status pages
+//             public static void PrintLine(int fileNumber)
+//             {
+//                     VBFile vbFile = getVBFile(fileNumber);
+//                     vbFile.printLine(null);
+//             }
 
                public static void PrintLine(int fileNumber, Object[] output)
                {
@@ -741,14 +743,8 @@ namespace Microsoft.VisualBasic
                }
 
 
-               public static /*synchronized*/ String Dir(String pathName)
-               {
-                       return Dir(pathName, 0);
-               }
-
                public static /*synchronized*/ String Dir(String pathName, 
-                                                         [System.Runtime.InteropServices.Optional] 
-                                                         [System.ComponentModel.DefaultValue(0)] 
+                                                         [Optional, __DefaultArgumentValue((int)0)] 
                                                          FileAttribute fileAttribute)
                {
                        _fileIndex = 0;
@@ -923,7 +919,6 @@ namespace Microsoft.VisualBasic
 
                public static bool EOF(int fileNumber)
                {
-                       bool  retVal = false;
                        VBFile vbFile = getVBFile(fileNumber);
                        return vbFile.isEndOfFile();
                }
@@ -975,12 +970,11 @@ namespace Microsoft.VisualBasic
                        return Directory.GetCurrentDirectory();
                }
 
-               public static void FileGetObject(int fileNumber,
-                                                ref object value,
-                                                [System.Runtime.InteropServices.Optional] 
-                                                [System.ComponentModel.DefaultValue(-1)] long recordNumber) 
-
-
+               [MonoTODO("How to deal with Array types?")]
+               public static void FileGetObject(
+                               int fileNumber,
+                               ref object value,
+                               [Optional, __DefaultArgumentValue((long)-1)] long recordNumber) 
                {
                        checkRecordNumber(recordNumber,true);
                        VBFile vbFile = getVBFile(fileNumber);
@@ -1052,43 +1046,9 @@ namespace Microsoft.VisualBasic
                                throw new NotSupportedException();
                }
 
-               public static void FileGet(int fileNumber,
-                                          ref DateTime value,
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber)
-
-               {
-                       checkRecordNumber(recordNumber,true);
-                       VBFile vbFile = getVBFile(fileNumber);
-                       vbFile.get(out value,recordNumber);
-               }
-
-               [MonoTODO]
-               public static void FileGet(int fileNumber, out ValueType value, long recordNumber) 
-               {
-                       throw new NotImplementedException();
-               }
-
-               public static void FileGet(int fileNumber,
-                                          ref Array value,
-                                          [System.Runtime.InteropServices.Optional] 
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber, 
-                                          [System.Runtime.InteropServices.Optional] 
-                                          [System.ComponentModel.DefaultValue(false)] bool arrayIsDynamic, 
-                                          [System.Runtime.InteropServices.Optional] 
-                                          [System.ComponentModel.DefaultValue(false)] bool stringIsFixedLength) 
-
-
-               {
-                       checkRecordNumber(recordNumber,true);
-                       VBFile vbFile = getVBFile(fileNumber);
-                       vbFile.get(ref value,recordNumber,arrayIsDynamic,stringIsFixedLength);
-               }
-
                public static void FilePutObject(int fileNumber,
                                                 Object value,
-                                                [System.Runtime.InteropServices.Optional]
-                                                [System.ComponentModel.DefaultValue(-1)] long recordNumber)
+                                                [Optional, __DefaultArgumentValue((long)-1)] long recordNumber)
 
                {
                        checkRecordNumber(recordNumber,true);
@@ -1142,8 +1102,7 @@ namespace Microsoft.VisualBasic
                [System.ObsoleteAttribute(obsoleteMsg, false)] 
                public static void FilePut(Object FileNumber,
                                           Object Value,
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] System.Object RecordNumber)
+                                          [Optional, __DefaultArgumentValue(-1)] System.Object RecordNumber)
                {
                        throw new ArgumentException(Utils.GetResourceString("UseFilePutObject"));
                }
@@ -1151,8 +1110,7 @@ namespace Microsoft.VisualBasic
                [MonoTODO]
                public static void FilePut(int FileNumber,
                                           ValueType Value,
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] System.Int64 RecordNumber)
+                                          [Optional, __DefaultArgumentValue((long)-1)] System.Int64 RecordNumber)
 
                {
                        throw new NotImplementedException();
@@ -1160,12 +1118,9 @@ namespace Microsoft.VisualBasic
 
                public static void FilePut(int fileNumber,
                                           Array value,
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] long recordNumber,
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(false)] bool arrayIsDynamic,
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(false)] bool stringIsFixedLength)
+                                          [Optional, __DefaultArgumentValue((long)-1)] long recordNumber,
+                                          [Optional, __DefaultArgumentValue(false)] bool arrayIsDynamic,
+                                          [Optional, __DefaultArgumentValue(false)] bool stringIsFixedLength)
                {
                        checkRecordNumber(recordNumber,true);
                        VBFile vbFile = getVBFile(fileNumber);
@@ -1174,9 +1129,7 @@ namespace Microsoft.VisualBasic
 
                public static void FilePut(int fileNumber,
                                           Decimal value,
-                                          [System.Runtime.InteropServices.Optional]
-                                          [System.ComponentModel.DefaultValue(-1)] long  recordNumber)
-                                          
+                                          [Optional, __DefaultArgumentValue((long)-1)] long  recordNumber)
                {
                        checkRecordNumber(recordNumber,true);
                        VBFile vbFile = getVBFile(fileNumber);