Stripped carriage return and added eol-style native prop.
diff --git a/scons-tools/srcdist.py b/scons-tools/srcdist.py
index cfc5407..17f029f 100644
--- a/scons-tools/srcdist.py
+++ b/scons-tools/srcdist.py
@@ -1,179 +1,179 @@
-import os

-import os.path

-import glob

-from fnmatch import fnmatch

-import targz

-

-##def DoxyfileParse(file_contents):

-##   """

-##   Parse a Doxygen source file and return a dictionary of all the values.

-##   Values will be strings and lists of strings.

-##   """

-##   data = {}

-##

-##   import shlex

-##   lex = shlex.shlex(instream = file_contents, posix = True)

-##   lex.wordchars += "*+./-:"

-##   lex.whitespace = lex.whitespace.replace("\n", "")

-##   lex.escape = ""

-##

-##   lineno = lex.lineno

-##   last_backslash_lineno = lineno

-##   token = lex.get_token()

-##   key = token   # the first token should be a key

-##   last_token = ""

-##   key_token = False

-##   next_key = False

-##   new_data = True

-##

-##   def append_data(data, key, new_data, token):

-##      if new_data or len(data[key]) == 0:

-##         data[key].append(token)

-##      else:

-##         data[key][-1] += token

-##

-##   while token:

-##      if token in ['\n']:

-##         if last_token not in ['\\']:

-##            key_token = True

-##      elif token in ['\\']:

-##         pass

-##      elif key_token:

-##         key = token

-##         key_token = False

-##      else:

-##         if token == "+=":

-##            if not data.has_key(key):

-##               data[key] = list()

-##         elif token == "=":

-##            data[key] = list()

-##         else:

-##            append_data( data, key, new_data, token )

-##            new_data = True

-##

-##      last_token = token

-##      token = lex.get_token()

-##      

-##      if last_token == '\\' and token != '\n':

-##         new_data = False

-##         append_data( data, key, new_data, '\\' )

-##

-##   # compress lists of len 1 into single strings

-##   for (k, v) in data.items():

-##      if len(v) == 0:

-##         data.pop(k)

-##

-##      # items in the following list will be kept as lists and not converted to strings

-##      if k in ["INPUT", "FILE_PATTERNS", "EXCLUDE_PATTERNS"]:

-##         continue

-##

-##      if len(v) == 1:

-##         data[k] = v[0]

-##

-##   return data

-##

-##def DoxySourceScan(node, env, path):

-##   """

-##   Doxygen Doxyfile source scanner.  This should scan the Doxygen file and add

-##   any files used to generate docs to the list of source files.

-##   """

-##   default_file_patterns = [

-##      '*.c', '*.cc', '*.cxx', '*.cpp', '*.c++', '*.java', '*.ii', '*.ixx',

-##      '*.ipp', '*.i++', '*.inl', '*.h', '*.hh ', '*.hxx', '*.hpp', '*.h++',

-##      '*.idl', '*.odl', '*.cs', '*.php', '*.php3', '*.inc', '*.m', '*.mm',

-##      '*.py',

-##   ]

-##

-##   default_exclude_patterns = [

-##      '*~',

-##   ]

-##

-##   sources = []

-##

-##   data = DoxyfileParse(node.get_contents())

-##

-##   if data.get("RECURSIVE", "NO") == "YES":

-##      recursive = True

-##   else:

-##      recursive = False

-##

-##   file_patterns = data.get("FILE_PATTERNS", default_file_patterns)

-##   exclude_patterns = data.get("EXCLUDE_PATTERNS", default_exclude_patterns)

-##

-##   for node in data.get("INPUT", []):

-##      if os.path.isfile(node):

-##         sources.add(node)

-##      elif os.path.isdir(node):

-##         if recursive:

-##            for root, dirs, files in os.walk(node):

-##               for f in files:

-##                  filename = os.path.join(root, f)

-##

-##                  pattern_check = reduce(lambda x, y: x or bool(fnmatch(filename, y)), file_patterns, False)

-##                  exclude_check = reduce(lambda x, y: x and fnmatch(filename, y), exclude_patterns, True)

-##

-##                  if pattern_check and not exclude_check:

-##                     sources.append(filename)

-##         else:

-##            for pattern in file_patterns:

-##               sources.extend(glob.glob("/".join([node, pattern])))

-##   sources = map( lambda path: env.File(path), sources )

-##   return sources

-##

-##

-##def DoxySourceScanCheck(node, env):

-##   """Check if we should scan this file"""

-##   return os.path.isfile(node.path)

-

-def srcDistEmitter(source, target, env):

-##   """Doxygen Doxyfile emitter"""

-##   # possible output formats and their default values and output locations

-##   output_formats = {

-##      "HTML": ("YES", "html"),

-##      "LATEX": ("YES", "latex"),

-##      "RTF": ("NO", "rtf"),

-##      "MAN": ("YES", "man"),

-##      "XML": ("NO", "xml"),

-##   }

-##

-##   data = DoxyfileParse(source[0].get_contents())

-##

-##   targets = []

-##   out_dir = data.get("OUTPUT_DIRECTORY", ".")

-##

-##   # add our output locations

-##   for (k, v) in output_formats.items():

-##      if data.get("GENERATE_" + k, v[0]) == "YES":

-##         targets.append(env.Dir( os.path.join(out_dir, data.get(k + "_OUTPUT", v[1]))) )

-##

-##   # don't clobber targets

-##   for node in targets:

-##      env.Precious(node)

-##

-##   # set up cleaning stuff

-##   for node in targets:

-##      env.Clean(node, node)

-##

-##   return (targets, source)

-   return (target,source)

-

-def generate(env):

-   """

-   Add builders and construction variables for the

-   SrcDist tool.

-   """

-##   doxyfile_scanner = env.Scanner(

-##      DoxySourceScan,

-##      "DoxySourceScan",

-##      scan_check = DoxySourceScanCheck,

-##   )

-

-   srcdist_builder = targz.makeBuilder( srcDistEmitter )

-

-   env['BUILDERS']['SrcDist'] = srcdist_builder

-

-def exists(env):

-   """

-   Make sure srcdist exists.

-   """

-   return True

+import os
+import os.path
+import glob
+from fnmatch import fnmatch
+import targz
+
+##def DoxyfileParse(file_contents):
+##   """
+##   Parse a Doxygen source file and return a dictionary of all the values.
+##   Values will be strings and lists of strings.
+##   """
+##   data = {}
+##
+##   import shlex
+##   lex = shlex.shlex(instream = file_contents, posix = True)
+##   lex.wordchars += "*+./-:"
+##   lex.whitespace = lex.whitespace.replace("\n", "")
+##   lex.escape = ""
+##
+##   lineno = lex.lineno
+##   last_backslash_lineno = lineno
+##   token = lex.get_token()
+##   key = token   # the first token should be a key
+##   last_token = ""
+##   key_token = False
+##   next_key = False
+##   new_data = True
+##
+##   def append_data(data, key, new_data, token):
+##      if new_data or len(data[key]) == 0:
+##         data[key].append(token)
+##      else:
+##         data[key][-1] += token
+##
+##   while token:
+##      if token in ['\n']:
+##         if last_token not in ['\\']:
+##            key_token = True
+##      elif token in ['\\']:
+##         pass
+##      elif key_token:
+##         key = token
+##         key_token = False
+##      else:
+##         if token == "+=":
+##            if not data.has_key(key):
+##               data[key] = list()
+##         elif token == "=":
+##            data[key] = list()
+##         else:
+##            append_data( data, key, new_data, token )
+##            new_data = True
+##
+##      last_token = token
+##      token = lex.get_token()
+##      
+##      if last_token == '\\' and token != '\n':
+##         new_data = False
+##         append_data( data, key, new_data, '\\' )
+##
+##   # compress lists of len 1 into single strings
+##   for (k, v) in data.items():
+##      if len(v) == 0:
+##         data.pop(k)
+##
+##      # items in the following list will be kept as lists and not converted to strings
+##      if k in ["INPUT", "FILE_PATTERNS", "EXCLUDE_PATTERNS"]:
+##         continue
+##
+##      if len(v) == 1:
+##         data[k] = v[0]
+##
+##   return data
+##
+##def DoxySourceScan(node, env, path):
+##   """
+##   Doxygen Doxyfile source scanner.  This should scan the Doxygen file and add
+##   any files used to generate docs to the list of source files.
+##   """
+##   default_file_patterns = [
+##      '*.c', '*.cc', '*.cxx', '*.cpp', '*.c++', '*.java', '*.ii', '*.ixx',
+##      '*.ipp', '*.i++', '*.inl', '*.h', '*.hh ', '*.hxx', '*.hpp', '*.h++',
+##      '*.idl', '*.odl', '*.cs', '*.php', '*.php3', '*.inc', '*.m', '*.mm',
+##      '*.py',
+##   ]
+##
+##   default_exclude_patterns = [
+##      '*~',
+##   ]
+##
+##   sources = []
+##
+##   data = DoxyfileParse(node.get_contents())
+##
+##   if data.get("RECURSIVE", "NO") == "YES":
+##      recursive = True
+##   else:
+##      recursive = False
+##
+##   file_patterns = data.get("FILE_PATTERNS", default_file_patterns)
+##   exclude_patterns = data.get("EXCLUDE_PATTERNS", default_exclude_patterns)
+##
+##   for node in data.get("INPUT", []):
+##      if os.path.isfile(node):
+##         sources.add(node)
+##      elif os.path.isdir(node):
+##         if recursive:
+##            for root, dirs, files in os.walk(node):
+##               for f in files:
+##                  filename = os.path.join(root, f)
+##
+##                  pattern_check = reduce(lambda x, y: x or bool(fnmatch(filename, y)), file_patterns, False)
+##                  exclude_check = reduce(lambda x, y: x and fnmatch(filename, y), exclude_patterns, True)
+##
+##                  if pattern_check and not exclude_check:
+##                     sources.append(filename)
+##         else:
+##            for pattern in file_patterns:
+##               sources.extend(glob.glob("/".join([node, pattern])))
+##   sources = map( lambda path: env.File(path), sources )
+##   return sources
+##
+##
+##def DoxySourceScanCheck(node, env):
+##   """Check if we should scan this file"""
+##   return os.path.isfile(node.path)
+
+def srcDistEmitter(source, target, env):
+##   """Doxygen Doxyfile emitter"""
+##   # possible output formats and their default values and output locations
+##   output_formats = {
+##      "HTML": ("YES", "html"),
+##      "LATEX": ("YES", "latex"),
+##      "RTF": ("NO", "rtf"),
+##      "MAN": ("YES", "man"),
+##      "XML": ("NO", "xml"),
+##   }
+##
+##   data = DoxyfileParse(source[0].get_contents())
+##
+##   targets = []
+##   out_dir = data.get("OUTPUT_DIRECTORY", ".")
+##
+##   # add our output locations
+##   for (k, v) in output_formats.items():
+##      if data.get("GENERATE_" + k, v[0]) == "YES":
+##         targets.append(env.Dir( os.path.join(out_dir, data.get(k + "_OUTPUT", v[1]))) )
+##
+##   # don't clobber targets
+##   for node in targets:
+##      env.Precious(node)
+##
+##   # set up cleaning stuff
+##   for node in targets:
+##      env.Clean(node, node)
+##
+##   return (targets, source)
+   return (target,source)
+
+def generate(env):
+   """
+   Add builders and construction variables for the
+   SrcDist tool.
+   """
+##   doxyfile_scanner = env.Scanner(
+##      DoxySourceScan,
+##      "DoxySourceScan",
+##      scan_check = DoxySourceScanCheck,
+##   )
+
+   srcdist_builder = targz.makeBuilder( srcDistEmitter )
+
+   env['BUILDERS']['SrcDist'] = srcdist_builder
+
+def exists(env):
+   """
+   Make sure srcdist exists.
+   """
+   return True