Revision 2408cff9f738459019709c8c12d0bd8a5605566f authored by Linus Torvalds on 14 July 2005, 00:27:48 UTC, committed by Linus Torvalds on 14 July 2005, 00:27:48 UTC
We should always have unlinked any old ones before, but this just makes sure that we never over-write any old file. A quick "grep" now shows that all the core tools that open files for writing use O_EXCL, ie we never overwrite an existing file in place.
1 parent 1b66834
quote.c
#include "cache.h"
#include "quote.h"
/* Help to copy the thing properly quoted for the shell safety.
* any single quote is replaced with '\'', and the caller is
* expected to enclose the result within a single quote pair.
*
* E.g.
* original sq_quote result
* name ==> name ==> 'name'
* a b ==> a b ==> 'a b'
* a'b ==> a'\''b ==> 'a'\''b'
*/
char *sq_quote(const char *src)
{
static char *buf = NULL;
int cnt, c;
const char *cp;
char *bp;
/* count bytes needed to store the quoted string. */
for (cnt = 3, cp = src; *cp; cnt++, cp++)
if (*cp == '\'')
cnt += 3;
buf = xmalloc(cnt);
bp = buf;
*bp++ = '\'';
while ((c = *src++)) {
if (c != '\'')
*bp++ = c;
else {
bp = strcpy(bp, "'\\''");
bp += 4;
}
}
*bp++ = '\'';
*bp = 0;
return buf;
}
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...