 
   # A string, list, tuple or callable that returns a string, list or tuple,
   # containing the command line (with arguments) used to lint.
-  cmd: '-fsyntax-only -fno-caret-diagnostics -fexceptions'
+
   isCpp: false
   clang: null
+  @cmd: ''
 
   executablePath: null
 

      file = file.replace(/(\r\n|\n|\r)/gm, ' ')
      includepaths = "#{includepaths} #{file}"

    split = includepaths.split " "

    # concat includepath
    for custompath in split
      if custompath.length > 0
        @cmd = "#{@cmd} -I #{custompath}"
        # if the path is relative, resolve it
        # TODO: if path contain blank space!!!
        # custompathResolved = path.resolve(atom.project.getPaths()[0], custompath)
        # @cmd = "#{@cmd} -I \"#{custompathResolved}\""
        # custompathResolved = custompathResolved.replace(/\ /g, '\\ ')
        # @cmd = "#{@cmd} -I #{custompathResolved}"

    if atom.config.get 'linter-clang.clangSuppressWarnings'
      @cmd = "#{@cmd} -w"
    # build the command with arguments to lint the file
    {command, args} = @getCmdAndArgs(filePath)

    # add file to regex to filter output to this file,
    # need to change filename a bit to fit into regex


    stdout = (output) =>
      if atom.inDevMode()
        console.log 'clang: stdout', output
      if @errorStream == 'stdout'
        @processMessage(output, callback)

    stderr = (output) =>
      if atom.inDevMode()
        console.warn 'clang: stderr', output
      if @errorStream == 'stderr'
        @processMessage(output, callback)

    args.push @fileName
    
    if atom.inDevMode()
      console.log "clang: command = #{command}, args = #{args}, options = #{options}"

    new Process({command, args, options, stdout, stderr})

    # restore cmd
    # @cmd = oldCmd

  constructor: (editor) ->
    @editor = editor

    if editor.getGrammar().name == 'C++'
      @language = 'c++'
      @flag = '-std=c++11'
      @isCpp = true
    if editor.getGrammar().name == 'Objective-C++'
      @language = 'objective-c++'
      @flag = ''
      @isCpp = true
    if editor.getGrammar().name == 'C'
      @language = 'c'
      @flag = ''
      @isCpp = false
    if editor.getGrammar().name == 'Objective-C'
      @language = 'objective-c'
      @flag = ''
      @isCpp = false

    super(editor)
