607 return fuzzlen |
607 return fuzzlen |
608 self.printfile(True) |
608 self.printfile(True) |
609 self.ui.warn(_("Hunk #%d FAILED at %d\n") % (h.number, orig_start)) |
609 self.ui.warn(_("Hunk #%d FAILED at %d\n") % (h.number, orig_start)) |
610 self.rej.append(horig) |
610 self.rej.append(horig) |
611 return -1 |
611 return -1 |
|
612 |
|
613 def close(self): |
|
614 if self.dirty: |
|
615 self.writelines(self.fname, self.lines) |
|
616 self.write_rej() |
|
617 return len(self.rej) |
612 |
618 |
613 class hunk(object): |
619 class hunk(object): |
614 def __init__(self, desc, num, lr, context, create=False, remove=False): |
620 def __init__(self, desc, num, lr, context, create=False, remove=False): |
615 self.number = num |
621 self.number = num |
616 self.desc = desc |
622 self.desc = desc |
1105 err = 0 |
1111 err = 0 |
1106 current_file = None |
1112 current_file = None |
1107 cwd = os.getcwd() |
1113 cwd = os.getcwd() |
1108 opener = util.opener(cwd) |
1114 opener = util.opener(cwd) |
1109 |
1115 |
1110 def closefile(): |
|
1111 if not current_file: |
|
1112 return 0 |
|
1113 if current_file.dirty: |
|
1114 current_file.writelines(current_file.fname, current_file.lines) |
|
1115 current_file.write_rej() |
|
1116 return len(current_file.rej) |
|
1117 |
|
1118 for state, values in iterhunks(ui, fp): |
1116 for state, values in iterhunks(ui, fp): |
1119 if state == 'hunk': |
1117 if state == 'hunk': |
1120 if not current_file: |
1118 if not current_file: |
1121 continue |
1119 continue |
1122 ret = current_file.apply(values) |
1120 ret = current_file.apply(values) |
1123 if ret >= 0: |
1121 if ret >= 0: |
1124 changed.setdefault(current_file.fname, None) |
1122 changed.setdefault(current_file.fname, None) |
1125 if ret > 0: |
1123 if ret > 0: |
1126 err = 1 |
1124 err = 1 |
1127 elif state == 'file': |
1125 elif state == 'file': |
1128 rejects += closefile() |
1126 if current_file: |
|
1127 rejects += current_file.close() |
1129 afile, bfile, first_hunk = values |
1128 afile, bfile, first_hunk = values |
1130 try: |
1129 try: |
1131 current_file, missing = selectfile(afile, bfile, |
1130 current_file, missing = selectfile(afile, bfile, |
1132 first_hunk, strip) |
1131 first_hunk, strip) |
1133 current_file = patcher(ui, current_file, opener, |
1132 current_file = patcher(ui, current_file, opener, |