| Index: third_party/scons/scons-local/SCons/Tool/JavaCommon.py
 | 
| ===================================================================
 | 
| --- third_party/scons/scons-local/SCons/Tool/JavaCommon.py	(revision 7505)
 | 
| +++ third_party/scons/scons-local/SCons/Tool/JavaCommon.py	(working copy)
 | 
| @@ -27,7 +27,7 @@
 | 
|  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
|  #
 | 
|  
 | 
| -__revision__ = "src/engine/SCons/Tool/JavaCommon.py 3603 2008/10/10 05:46:45 scons"
 | 
| +__revision__ = "src/engine/SCons/Tool/JavaCommon.py 3842 2008/12/20 22:59:52 scons"
 | 
|  
 | 
|  import os
 | 
|  import os.path
 | 
| @@ -75,6 +75,7 @@
 | 
|              self.stackBrackets = []
 | 
|              self.brackets = 0
 | 
|              self.nextAnon = 1
 | 
| +            self.localClasses = []
 | 
|              self.stackAnonClassBrackets = []
 | 
|              self.anonStacksStack = [[0]]
 | 
|              self.package = None
 | 
| @@ -126,6 +127,7 @@
 | 
|              if len(self.stackBrackets) and \
 | 
|                 self.brackets == self.stackBrackets[-1]:
 | 
|                  self.listOutputs.append(string.join(self.listClasses, '$'))
 | 
| +                self.localClasses.pop()
 | 
|                  self.listClasses.pop()
 | 
|                  self.anonStacksStack.pop()
 | 
|                  self.stackBrackets.pop()
 | 
| @@ -240,6 +242,20 @@
 | 
|              # the next non-whitespace token should be the name of the class
 | 
|              if token == '\n':
 | 
|                  return self
 | 
| +            # If that's an inner class which is declared in a method, it
 | 
| +            # requires an index prepended to the class-name, e.g.
 | 
| +            # 'Foo$1Inner' (Tigris Issue 2087)
 | 
| +            if self.outer_state.localClasses and \
 | 
| +                self.outer_state.stackBrackets[-1] > \
 | 
| +                self.outer_state.stackBrackets[-2]+1:
 | 
| +                locals = self.outer_state.localClasses[-1]
 | 
| +                try:
 | 
| +                    idx = locals[token]
 | 
| +                    locals[token] = locals[token]+1
 | 
| +                except KeyError:
 | 
| +                    locals[token] = 1
 | 
| +                token = str(locals[token]) + token
 | 
| +            self.outer_state.localClasses.append({})
 | 
|              self.outer_state.listClasses.append(token)
 | 
|              self.outer_state.anonStacksStack.append([0])
 | 
|              return self.outer_state
 | 
| 
 |