2010-05-28 Marek Safar <marek.safar@gmail.com>
authorMarek Safar <marek.safar@gmail.com>
Wed, 28 Apr 2010 09:16:47 +0000 (09:16 -0000)
committerMarek Safar <marek.safar@gmail.com>
Wed, 28 Apr 2010 09:16:47 +0000 (09:16 -0000)
* cs-tokenizer.cs: Made tab size configurable.

svn path=/trunk/mcs/; revision=156295

mcs/mcs/ChangeLog
mcs/mcs/cs-tokenizer.cs

index 216fe4c103f8e625d8685280e2a473de14a75251..a465f8bcee926dc4571155fa42fd93017ab3b827 100644 (file)
@@ -1,3 +1,7 @@
+2010-05-28  Marek Safar  <marek.safar@gmail.com>
+
+       * cs-tokenizer.cs: Made tab size configurable.
+
 2010-05-27  Marek Safar  <marek.safar@gmail.com>
 
        * attribute.cs: Ensure Obsolete members are defined before doing
index ddb598a8bbefd1a0c97832a1be84d399975da775..5d1c92c54159e13f22995161cdc23ca7d69ac297 100644 (file)
@@ -154,6 +154,7 @@ namespace Mono.CSharp
                int col = 0;
                int previous_col;
                int current_token;
+               int tab_size;
                bool handle_get_set = false;
                bool handle_remove_add = false;
                bool handle_where = false;
@@ -253,6 +254,11 @@ namespace Mono.CSharp
                        get { return handle_typeof; }
                        set { handle_typeof = value; }
                }
+
+               public int TabSize {
+                       get { return tab_size; }
+                       set { tab_size = value; }
+               }
                
                public XmlCommentState doc_state {
                        get { return xml_doc_state; }
@@ -745,6 +751,11 @@ namespace Mono.CSharp
 
                        xml_comment_buffer = new StringBuilder ();
 
+                       if (Environment.OSVersion.Platform == PlatformID.Win32NT)
+                               tab_size = 4;
+                       else
+                               tab_size = 8;
+
                        //
                        // FIXME: This could be `Location.Push' but we have to
                        // find out why the MS compiler allows this
@@ -1055,7 +1066,6 @@ namespace Mono.CSharp
                        int d = peek_char ();
                        if (d == '?') {
                                get_char ();
-                               val = LocatedToken.Create (ref_line, col);
                                return Token.OP_COALESCING;
                        }
 
@@ -2572,7 +2582,7 @@ namespace Mono.CSharp
                        while ((c = get_char ()) != -1) {
                                switch (c) {
                                case '\t':
-                                       col = ((col + 8) / 8) * 8;
+                                       col = ((col + tab_size) / tab_size) * tab_size;
                                        continue;
 
                                case ' ':