projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use sigaction and SA_RESTART in read-tree.c; add option in Makefile.
[git.git]
/
diff.c
diff --git
a/diff.c
b/diff.c
index
69767b9
..
890bdaa
100644
(file)
--- a/
diff.c
+++ b/
diff.c
@@
-555,6
+555,8
@@
static void remove_tempfile(void)
static void remove_tempfile_on_signal(int signo)
{
remove_tempfile();
static void remove_tempfile_on_signal(int signo)
{
remove_tempfile();
+ signal(SIGINT, SIG_DFL);
+ raise(signo);
}
/* An external diff command takes:
}
/* An external diff command takes:
@@
-847,8
+849,13
@@
int diff_opt_parse(struct diff_options *options, const char **av, int ac)
options->find_copies_harder = 1;
else if (!strcmp(arg, "--abbrev"))
options->abbrev = DEFAULT_ABBREV;
options->find_copies_harder = 1;
else if (!strcmp(arg, "--abbrev"))
options->abbrev = DEFAULT_ABBREV;
- else if (!strncmp(arg, "--abbrev=", 9))
+ else if (!strncmp(arg, "--abbrev=", 9))
{
options->abbrev = strtoul(arg + 9, NULL, 10);
options->abbrev = strtoul(arg + 9, NULL, 10);
+ if (options->abbrev < MINIMUM_ABBREV)
+ options->abbrev = MINIMUM_ABBREV;
+ else if (40 < options->abbrev)
+ options->abbrev = 40;
+ }
else
return 0;
return 1;
else
return 0;
return 1;
@@
-956,7
+963,7
@@
void diff_free_filepair(struct diff_filepair *p)
}
/* This is different from find_unique_abbrev() in that
}
/* This is different from find_unique_abbrev() in that
- * it
needs to deal with 0{40} SHA1
.
+ * it
stuffs the result with dots for alignment
.
*/
const char *diff_unique_abbrev(const unsigned char *sha1, int len)
{
*/
const char *diff_unique_abbrev(const unsigned char *sha1, int len)
{
@@
-966,16
+973,8
@@
const char *diff_unique_abbrev(const unsigned char *sha1, int len)
return sha1_to_hex(sha1);
abbrev = find_unique_abbrev(sha1, len);
return sha1_to_hex(sha1);
abbrev = find_unique_abbrev(sha1, len);
- if (!abbrev) {
- if (!memcmp(sha1, null_sha1, 20)) {
- char *buf = sha1_to_hex(null_sha1);
- if (len < 37)
- strcpy(buf + len, "...");
- return buf;
- }
- else
- return sha1_to_hex(sha1);
- }
+ if (!abbrev)
+ return sha1_to_hex(sha1);
abblen = strlen(abbrev);
if (abblen < 37) {
static char hex[41];
abblen = strlen(abbrev);
if (abblen < 37) {
static char hex[41];