pch.c (267701) | pch.c (267746) |
---|---|
1 2/*- 3 * Copyright 1986, Larry Wall 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following condition is met: 7 * 1. Redistributions of source code must retain the above copyright notice, 8 * this condition and the following disclaimer. --- 11 unchanged lines hidden (view full) --- 20 * SUCH DAMAGE. 21 * 22 * patch - a program to apply diffs to original files 23 * 24 * -C option added in 1998, original code by Marc Espie, based on FreeBSD 25 * behaviour 26 * 27 * $OpenBSD: pch.c,v 1.39 2012/04/11 08:07:13 ajacoutot Exp $ | 1 2/*- 3 * Copyright 1986, Larry Wall 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following condition is met: 7 * 1. Redistributions of source code must retain the above copyright notice, 8 * this condition and the following disclaimer. --- 11 unchanged lines hidden (view full) --- 20 * SUCH DAMAGE. 21 * 22 * patch - a program to apply diffs to original files 23 * 24 * -C option added in 1998, original code by Marc Espie, based on FreeBSD 25 * behaviour 26 * 27 * $OpenBSD: pch.c,v 1.39 2012/04/11 08:07:13 ajacoutot Exp $ |
28 * $FreeBSD: stable/10/usr.bin/patch/pch.c 267701 2014-06-21 01:48:45Z pfg $ | 28 * $FreeBSD: stable/10/usr.bin/patch/pch.c 267746 2014-06-22 20:24:17Z pfg $ |
29 */ 30 31#include <sys/types.h> 32#include <sys/stat.h> 33 34#include <ctype.h> 35#include <libgen.h> 36#include <limits.h> --- 14 unchanged lines hidden (view full) --- 51static LINENUM p_newfirst; /* 1st line number of replacement */ 52static LINENUM p_ptrn_lines; /* # lines in pattern */ 53static LINENUM p_repl_lines; /* # lines in replacement text */ 54static LINENUM p_end = -1; /* last line in hunk */ 55static LINENUM p_max; /* max allowed value of p_end */ 56static LINENUM p_context = 3; /* # of context lines */ 57static LINENUM p_input_line = 0; /* current line # from patch file */ 58static char **p_line = NULL;/* the text of the hunk */ | 29 */ 30 31#include <sys/types.h> 32#include <sys/stat.h> 33 34#include <ctype.h> 35#include <libgen.h> 36#include <limits.h> --- 14 unchanged lines hidden (view full) --- 51static LINENUM p_newfirst; /* 1st line number of replacement */ 52static LINENUM p_ptrn_lines; /* # lines in pattern */ 53static LINENUM p_repl_lines; /* # lines in replacement text */ 54static LINENUM p_end = -1; /* last line in hunk */ 55static LINENUM p_max; /* max allowed value of p_end */ 56static LINENUM p_context = 3; /* # of context lines */ 57static LINENUM p_input_line = 0; /* current line # from patch file */ 58static char **p_line = NULL;/* the text of the hunk */ |
59static short *p_len = NULL; /* length of each line */ | 59static unsigned short *p_len = NULL; /* length of each line */ |
60static char *p_char = NULL; /* +, -, and ! */ 61static int hunkmax = INITHUNKMAX; /* size of above arrays to begin with */ 62static int p_indent; /* indent to patch */ 63static LINENUM p_base; /* where to intuit this time */ 64static LINENUM p_bline; /* line # of p_base */ 65static LINENUM p_start; /* where intuit found a patch */ 66static LINENUM p_sline; /* and the line number for it */ 67static LINENUM p_hunk_beg; /* line number of current hunk */ --- 61 unchanged lines hidden (view full) --- 129 * Make sure our dynamically realloced tables are malloced to begin with. 130 */ 131void 132set_hunkmax(void) 133{ 134 if (p_line == NULL) 135 p_line = malloc(hunkmax * sizeof(char *)); 136 if (p_len == NULL) | 60static char *p_char = NULL; /* +, -, and ! */ 61static int hunkmax = INITHUNKMAX; /* size of above arrays to begin with */ 62static int p_indent; /* indent to patch */ 63static LINENUM p_base; /* where to intuit this time */ 64static LINENUM p_bline; /* line # of p_base */ 65static LINENUM p_start; /* where intuit found a patch */ 66static LINENUM p_sline; /* and the line number for it */ 67static LINENUM p_hunk_beg; /* line number of current hunk */ --- 61 unchanged lines hidden (view full) --- 129 * Make sure our dynamically realloced tables are malloced to begin with. 130 */ 131void 132set_hunkmax(void) 133{ 134 if (p_line == NULL) 135 p_line = malloc(hunkmax * sizeof(char *)); 136 if (p_len == NULL) |
137 p_len = malloc(hunkmax * sizeof(short)); | 137 p_len = malloc(hunkmax * sizeof(unsigned short)); |
138 if (p_char == NULL) 139 p_char = malloc(hunkmax * sizeof(char)); 140} 141 142/* 143 * Enlarge the arrays containing the current hunk of patch. 144 */ 145static void 146grow_hunkmax(void) 147{ 148 int new_hunkmax = hunkmax * 2; 149 150 if (p_line == NULL || p_len == NULL || p_char == NULL) 151 fatal("Internal memory allocation error\n"); 152 153 p_line = reallocf(p_line, new_hunkmax * sizeof(char *)); | 138 if (p_char == NULL) 139 p_char = malloc(hunkmax * sizeof(char)); 140} 141 142/* 143 * Enlarge the arrays containing the current hunk of patch. 144 */ 145static void 146grow_hunkmax(void) 147{ 148 int new_hunkmax = hunkmax * 2; 149 150 if (p_line == NULL || p_len == NULL || p_char == NULL) 151 fatal("Internal memory allocation error\n"); 152 153 p_line = reallocf(p_line, new_hunkmax * sizeof(char *)); |
154 p_len = reallocf(p_len, new_hunkmax * sizeof(short)); | 154 p_len = reallocf(p_len, new_hunkmax * sizeof(unsigned short)); |
155 p_char = reallocf(p_char, new_hunkmax * sizeof(char)); 156 157 if (p_line != NULL && p_len != NULL && p_char != NULL) { 158 hunkmax = new_hunkmax; 159 return; 160 } 161 162 if (!using_plan_a) --- 1033 unchanged lines hidden (view full) --- 1196 1197/* 1198 * Reverse the old and new portions of the current hunk. 1199 */ 1200bool 1201pch_swap(void) 1202{ 1203 char **tp_line; /* the text of the hunk */ | 155 p_char = reallocf(p_char, new_hunkmax * sizeof(char)); 156 157 if (p_line != NULL && p_len != NULL && p_char != NULL) { 158 hunkmax = new_hunkmax; 159 return; 160 } 161 162 if (!using_plan_a) --- 1033 unchanged lines hidden (view full) --- 1196 1197/* 1198 * Reverse the old and new portions of the current hunk. 1199 */ 1200bool 1201pch_swap(void) 1202{ 1203 char **tp_line; /* the text of the hunk */ |
1204 short *tp_len; /* length of each line */ | 1204 unsigned short *tp_len;/* length of each line */ |
1205 char *tp_char; /* +, -, and ! */ 1206 LINENUM i; 1207 LINENUM n; 1208 bool blankline = false; 1209 char *s; 1210 1211 i = p_first; 1212 p_first = p_newfirst; --- 140 unchanged lines hidden (view full) --- 1353pch_context(void) 1354{ 1355 return p_context; 1356} 1357 1358/* 1359 * Return the length of a particular patch line. 1360 */ | 1205 char *tp_char; /* +, -, and ! */ 1206 LINENUM i; 1207 LINENUM n; 1208 bool blankline = false; 1209 char *s; 1210 1211 i = p_first; 1212 p_first = p_newfirst; --- 140 unchanged lines hidden (view full) --- 1353pch_context(void) 1354{ 1355 return p_context; 1356} 1357 1358/* 1359 * Return the length of a particular patch line. 1360 */ |
1361short | 1361unsigned short |
1362pch_line_len(LINENUM line) 1363{ 1364 return p_len[line]; 1365} 1366 1367/* 1368 * Return the control character (+, -, *, !, etc) for a patch line. 1369 */ --- 210 unchanged lines hidden --- | 1362pch_line_len(LINENUM line) 1363{ 1364 return p_len[line]; 1365} 1366 1367/* 1368 * Return the control character (+, -, *, !, etc) for a patch line. 1369 */ --- 210 unchanged lines hidden --- |