Quoting Kevin Pilch-Bisson <kevin@pilch-bisson.net>:
> I've attached a short example of what I am trying to do on in svn for
> the benefit of any apr folks who may be able to look at this.
>
> Basically I'm calling the run_pre_revprop_change_hook(), and it's
> hanging in apr_file_flush(...) specifically in FlushFileBuffers it seems.
>
> The hook script (shown below), is hanging in getc().
>
> Any ideas why this isn't working?
>
> Note that log.txt never includes anything from stdin.
>
> int main(int argc, char **argv)
> {
> std::ofstream file("log.txt");
> file << "Repos is: " << argv[1] << std::endl;
> file << "Rev is: " << argv[2] << std::endl;
> file << "Propname is: " << argv[3] << std::endl;
> while (!std::cin.eof()) {
> std::string s;
> std::cin >> s;
IIRC this is a fairly well-known bug in MS's implementation of the iostream
library. It hangs in getc() because it doesn't check for end-of-file correctly.
> file << s << std::endl;
BTW, why are you breaking lines in the prop value like this? "std::cin >> s"
will _not_ read a whole line of input.
> }
> file << std::ends;
Hm. Stuffing nulls into text files is not nice, either.
> file.close();
> return 0;
> }
Anyway. Try rewriting that hook of yours in C, with appropriate eof checking. It
has a good chance of working then. Or you might try to use "std::getline(cin, s,
'\n')", maybe that doesn't tickle the same bug -- not to mention that lines will
be broken correctly.
Brane
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Oct 1 12:39:24 2002