LGTM. Changing to std::string is a definite improvement. Thanks.
https://codereview.appspot.com/579310043/diff/557420043/lily/engraver.cc File lily/engraver.cc (right): https://codereview.appspot.com/579310043/diff/557420043/lily/engraver.cc#newcode121 lily/engraver.cc:121: if (!scm_is_pair (props)) { misplaced braces https://codereview.appspot.com/579310043/diff/557420043/lily/engraver.cc#newcode124 lily/engraver.cc:124: }; superfluous semicolon https://codereview.appspot.com/579310043/diff/557420043/lily/source-file.cc File lily/source-file.cc (right): https://codereview.appspot.com/579310043/diff/557420043/lily/source-file.cc#newcode55 lily/source-file.cc:55: return contents of FILENAME. *Not 0-terminated!* update https://codereview.appspot.com/579310043/diff/557420043/lily/source-file.cc#newcode84 lily/source-file.cc:84: string dest; I'd construct with (count, character) rather than construct empty and resize. https://codereview.appspot.com/579310043/