Index: cfe/trunk/test/Refactor/tool-apply-replacements.cpp =================================================================== --- cfe/trunk/test/Refactor/tool-apply-replacements.cpp +++ cfe/trunk/test/Refactor/tool-apply-replacements.cpp @@ -1,10 +1,8 @@ -// RUN: rm -f %t.cp.cpp -// RUN: cp %s %t.cp.cpp -// RUN: clang-refactor local-rename -selection=%t.cp.cpp:9:7 -new-name=test %t.cp.cpp -- -// RUN: grep -v CHECK %t.cp.cpp | FileCheck %t.cp.cpp -// RUN: cp %s %t.cp.cpp -// RUN: clang-refactor local-rename -selection=%t.cp.cpp:9:7-9:15 -new-name=test %t.cp.cpp -- -// RUN: grep -v CHECK %t.cp.cpp | FileCheck %t.cp.cpp +// RUN: sed -e 's#//.*$##' %s > %t.cpp +// RUN: clang-refactor local-rename -selection=%t.cpp:7:7 -new-name=test %t.cpp -- | FileCheck %s +// RUN: clang-refactor local-rename -selection=%t.cpp:7:7-7:15 -new-name=test %t.cpp -- | FileCheck %s +// RUN: clang-refactor local-rename -i -selection=%t.cpp:7:7 -new-name=test %t.cpp -- +// RUN: FileCheck -input-file=%t.cpp %s class RenameMe { // CHECK: class test { Index: cfe/trunk/tools/clang-refactor/ClangRefactor.cpp =================================================================== --- cfe/trunk/tools/clang-refactor/ClangRefactor.cpp +++ cfe/trunk/tools/clang-refactor/ClangRefactor.cpp @@ -40,6 +40,11 @@ static cl::opt Verbose("v", cl::desc("Use verbose output"), cl::cat(cl::GeneralCategory), cl::sub(*cl::AllSubCommands)); + +static cl::opt Inplace("i", cl::desc("Inplace edit s"), + cl::cat(cl::GeneralCategory), + cl::sub(*cl::AllSubCommands)); + } // end namespace opts namespace { @@ -436,13 +441,18 @@ return true; } - std::error_code EC; - llvm::raw_fd_ostream OS(File, EC, llvm::sys::fs::F_Text); - if (EC) { - llvm::errs() << EC.message() << "\n"; - return true; + if (opts::Inplace) { + std::error_code EC; + llvm::raw_fd_ostream OS(File, EC, llvm::sys::fs::F_Text); + if (EC) { + llvm::errs() << EC.message() << "\n"; + return true; + } + OS << *Result; + continue; } - OS << *Result; + + llvm::outs() << *Result; } return false; }