[PATCH] diff: Clean up diff_scoreopt_parse().
This cleans up diff_scoreopt_parse() function that is used to parse the fractional notation -B, -C and -M option takes. The callers are modified to check for errors and complain. Earlier they silently ignored malformed input and falled back on the default. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:

committed by
Linus Torvalds

parent
ce24067549
commit
0e3994fa97
@ -229,24 +229,6 @@ static int score_compare(const void *a_, const void *b_)
|
||||
return b->score - a->score;
|
||||
}
|
||||
|
||||
int diff_scoreopt_parse(const char *opt)
|
||||
{
|
||||
int diglen, num, scale, i;
|
||||
if (opt[0] != '-' || (opt[1] != 'M' && opt[1] != 'C' && opt[1] != 'B'))
|
||||
return -1; /* that is not a -M, -C nor -B option */
|
||||
diglen = strspn(opt+2, "0123456789");
|
||||
if (diglen == 0 || strlen(opt+2) != diglen)
|
||||
return 0; /* use default */
|
||||
sscanf(opt+2, "%d", &num);
|
||||
for (i = 0, scale = 1; i < diglen; i++)
|
||||
scale *= 10;
|
||||
|
||||
/* user says num divided by scale and we say internally that
|
||||
* is MAX_SCORE * num / scale.
|
||||
*/
|
||||
return MAX_SCORE * num / scale;
|
||||
}
|
||||
|
||||
void diffcore_rename(int detect_rename, int minimum_score)
|
||||
{
|
||||
struct diff_queue_struct *q = &diff_queued_diff;
|
||||
|
Reference in New Issue
Block a user