aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn L McGrath <bug1@ihug.co.nz>2003-04-11 17:10:23 +0000
committerGlenn L McGrath <bug1@ihug.co.nz>2003-04-11 17:10:23 +0000
commitd4185b0e1589d1d4e847f25a730424bb75f0a744 (patch)
treec6c20a7b8cab9cb37b36639e4a77f14b5e7f1822
parentd7fe39b587d78020356eee4636c86e5151634baf (diff)
downloadbusybox-w32-d4185b0e1589d1d4e847f25a730424bb75f0a744.tar.gz
busybox-w32-d4185b0e1589d1d4e847f25a730424bb75f0a744.tar.bz2
busybox-w32-d4185b0e1589d1d4e847f25a730424bb75f0a744.zip
Fix up indenting
-rw-r--r--editors/sed.c137
1 files changed, 59 insertions, 78 deletions
diff --git a/editors/sed.c b/editors/sed.c
index 5dd5b2654..d90d63e43 100644
--- a/editors/sed.c
+++ b/editors/sed.c
@@ -165,7 +165,7 @@ static void destroy_cmd_strs(void)
165 * a backslash ('\'). 165 * a backslash ('\').
166 */ 166 */
167static int index_of_next_unescaped_regexp_delim(const char delimiter, 167static int index_of_next_unescaped_regexp_delim(const char delimiter,
168 const char *str) 168 const char *str)
169{ 169{
170 int bracket = -1; 170 int bracket = -1;
171 int escaped = 0; 171 int escaped = 0;
@@ -174,8 +174,8 @@ static int index_of_next_unescaped_regexp_delim(const char delimiter,
174 174
175 for (; (ch = str[idx]); idx++) { 175 for (; (ch = str[idx]); idx++) {
176 if (bracket != -1) { 176 if (bracket != -1) {
177 if (ch == ']' && !(bracket == idx - 1 || 177 if (ch == ']' && !(bracket == idx - 1 || (bracket == idx - 2
178 (bracket == idx - 2 && str[idx - 1] == '^'))) 178 && str[idx - 1] == '^')))
179 bracket = -1; 179 bracket = -1;
180 } else if (escaped) 180 } else if (escaped)
181 escaped = 0; 181 escaped = 0;
@@ -392,7 +392,7 @@ static int parse_edit_cmd(sed_cmd_t * sed_cmd, const char *editstr)
392 /* store the edit line text */ 392 /* store the edit line text */
393 sed_cmd->editline = xmalloc(strlen(&editstr[2]) + 2); 393 sed_cmd->editline = xmalloc(strlen(&editstr[2]) + 2);
394 for (i = 2, j = 0; 394 for (i = 2, j = 0;
395 editstr[i] != '\0' && strchr("\r\n", editstr[i]) == NULL; i++, j++) { 395 editstr[i] != '\0' && strchr("\r\n", editstr[i]) == NULL; i++, j++) {
396 if ((editstr[i] == '\\') && strchr("\n\r", editstr[i + 1]) != NULL) { 396 if ((editstr[i] == '\\') && strchr("\n\r", editstr[i + 1]) != NULL) {
397 sed_cmd->editline[j] = '\n'; 397 sed_cmd->editline[j] = '\n';
398 i++; 398 i++;
@@ -449,7 +449,7 @@ static int parse_file_cmd(sed_cmd_t * sed_cmd, const char *filecmdstr)
449/* 449/*
450 * Process the commands arguments 450 * Process the commands arguments
451 */ 451 */
452static char *parse_cmd_str(sed_cmd_t *sed_cmd, char *cmdstr) 452static char *parse_cmd_str(sed_cmd_t * sed_cmd, char *cmdstr)
453{ 453{
454 /* handle (s)ubstitution command */ 454 /* handle (s)ubstitution command */
455 if (sed_cmd->cmd == 's') { 455 if (sed_cmd->cmd == 's') {
@@ -536,7 +536,7 @@ static char *add_cmd(sed_cmd_t * sed_cmd, char *cmdstr)
536 idx = get_address(cmdstr, &sed_cmd->end_line, &sed_cmd->end_match); 536 idx = get_address(cmdstr, &sed_cmd->end_line, &sed_cmd->end_match);
537 if (idx == 0) { 537 if (idx == 0) {
538 bb_error_msg_and_die("get_address: no address found in string\n" 538 bb_error_msg_and_die("get_address: no address found in string\n"
539 "\t(you probably didn't check the string you passed me)"); 539 "\t(you probably didn't check the string you passed me)");
540 } 540 }
541 cmdstr += idx; 541 cmdstr += idx;
542 } 542 }
@@ -637,8 +637,8 @@ static void load_cmd_file(char *filename)
637 while ((line = bb_get_line_from_file(cmdfile)) != NULL) { 637 while ((line = bb_get_line_from_file(cmdfile)) != NULL) {
638 /* if a line ends with '\' it needs the next line appended to it */ 638 /* if a line ends with '\' it needs the next line appended to it */
639 while (((e = last_char_is(line, '\n')) != NULL) 639 while (((e = last_char_is(line, '\n')) != NULL)
640 && (e > line) && (e[-1] == '\\') 640 && (e > line) && (e[-1] == '\\')
641 && ((nextline = bb_get_line_from_file(cmdfile)) != NULL)) { 641 && ((nextline = bb_get_line_from_file(cmdfile)) != NULL)) {
642 line = xrealloc(line, (e - line) + 1 + strlen(nextline) + 1); 642 line = xrealloc(line, (e - line) + 1 + strlen(nextline) + 1);
643 strcat(line, nextline); 643 strcat(line, nextline);
644 free(nextline); 644 free(nextline);
@@ -686,9 +686,7 @@ void pipe_putc(struct pipeline *const pipeline, char c)
686#endif 686#endif
687 687
688static void print_subst_w_backrefs(const char *line, const char *replace, 688static void print_subst_w_backrefs(const char *line, const char *replace,
689 regmatch_t * regmatch, 689 regmatch_t * regmatch, struct pipeline *const pipeline, int matches)
690 struct pipeline *const pipeline,
691 int matches)
692{ 690{
693 int i; 691 int i;
694 692
@@ -707,7 +705,7 @@ static void print_subst_w_backrefs(const char *line, const char *replace,
707 /* print out the text held in regmatch[backref] */ 705 /* print out the text held in regmatch[backref] */
708 if (backref <= matches && regmatch[backref].rm_so != -1) 706 if (backref <= matches && regmatch[backref].rm_so != -1)
709 for (j = regmatch[backref].rm_so; j < regmatch[backref].rm_eo; 707 for (j = regmatch[backref].rm_so; j < regmatch[backref].rm_eo;
710 j++) 708 j++)
711 pipeputc(line[j]); 709 pipeputc(line[j]);
712 } 710 }
713 711
@@ -723,6 +721,7 @@ static void print_subst_w_backrefs(const char *line, const char *replace,
723 * purpose...) */ 721 * purpose...) */
724 else if (replace[i] == '&') { 722 else if (replace[i] == '&') {
725 int j; 723 int j;
724
726 for (j = regmatch[0].rm_so; j < regmatch[0].rm_eo; j++) 725 for (j = regmatch[0].rm_so; j < regmatch[0].rm_eo; j++)
727 pipeputc(line[j]); 726 pipeputc(line[j]);
728 } 727 }
@@ -766,9 +765,9 @@ static int do_subst_command(sed_cmd_t * sed_cmd, char **line)
766 765
767 /* and now, as long as we've got a line to try matching and if we can match 766 /* and now, as long as we've got a line to try matching and if we can match
768 * the search string, we make substitutions */ 767 * the search string, we make substitutions */
769 while ((*hackline || !altered) && (regexec(current_regex, hackline, 768 while ((*hackline || !altered)
770 sed_cmd->num_backrefs + 1, 769 && (regexec(current_regex, hackline, sed_cmd->num_backrefs + 1,
771 regmatch, 0) != REG_NOMATCH)) { 770 regmatch, 0) != REG_NOMATCH)) {
772 int i; 771 int i;
773 772
774 /* print everything before the match */ 773 /* print everything before the match */
@@ -776,8 +775,8 @@ static int do_subst_command(sed_cmd_t * sed_cmd, char **line)
776 pipeputc(hackline[i]); 775 pipeputc(hackline[i]);
777 776
778 /* then print the substitution string */ 777 /* then print the substitution string */
779 print_subst_w_backrefs(hackline, sed_cmd->replace, regmatch, 778 print_subst_w_backrefs(hackline, sed_cmd->replace, regmatch, pipeline,
780 pipeline, sed_cmd->num_backrefs); 779 sed_cmd->num_backrefs);
781 780
782 /* advance past the match */ 781 /* advance past the match */
783 hackline += regmatch[0].rm_eo; 782 hackline += regmatch[0].rm_eo;
@@ -805,6 +804,7 @@ static int do_subst_command(sed_cmd_t * sed_cmd, char **line)
805static sed_cmd_t *branch_to(const char *label) 804static sed_cmd_t *branch_to(const char *label)
806{ 805{
807 sed_cmd_t *sed_cmd; 806 sed_cmd_t *sed_cmd;
807
808 for (sed_cmd = sed_cmd_head.next; sed_cmd; sed_cmd = sed_cmd->next) { 808 for (sed_cmd = sed_cmd_head.next; sed_cmd; sed_cmd = sed_cmd->next) {
809 if ((sed_cmd->label) && (strcmp(sed_cmd->label, label) == 0)) { 809 if ((sed_cmd->label) && (strcmp(sed_cmd->label, label) == 0)) {
810 break; 810 break;
@@ -843,31 +843,26 @@ static void process_file(FILE * file)
843 force_print = 0; 843 force_print = 0;
844 844
845 /* for every line, go through all the commands */ 845 /* for every line, go through all the commands */
846 for (sed_cmd = sed_cmd_head.next; sed_cmd; 846 for (sed_cmd = sed_cmd_head.next; sed_cmd; sed_cmd = sed_cmd->next) {
847 sed_cmd = sed_cmd->next) {
848 int deleted = 0; 847 int deleted = 0;
849 848
850 /* 849 /*
851 * entry point into sedding... 850 * entry point into sedding...
852 */ 851 */
853 int matched = ( 852 int matched = (
854 /* no range necessary */ 853 /* no range necessary */
855 (sed_cmd->beg_line == 0 854 (sed_cmd->beg_line == 0 && sed_cmd->end_line == 0
856 && sed_cmd->end_line == 0 855 && sed_cmd->beg_match == NULL
857 && sed_cmd->beg_match == NULL 856 && sed_cmd->end_match == NULL) ||
858 && sed_cmd->end_match == NULL) || 857 /* this line number is the first address we're looking for */
859 /* this line number is the first address we're looking for */ 858 (sed_cmd->beg_line && (sed_cmd->beg_line == linenum)) ||
860 (sed_cmd->beg_line 859 /* this line matches our first address regex */
861 && (sed_cmd->beg_line == linenum)) || 860 (sed_cmd->beg_match
862 /* this line matches our first address regex */ 861 && (regexec(sed_cmd->beg_match, pattern_space, 0, NULL,
863 (sed_cmd->beg_match 862 0) == 0)) ||
864 && 863 /* we are currently within the beginning & ending address range */
865 (regexec 864 still_in_range || ((sed_cmd->beg_line == -1)
866 (sed_cmd->beg_match, pattern_space, 0, NULL, 865 && (next_line == NULL))
867 0) == 0)) ||
868 /* we are currently within the beginning & ending address range */
869 still_in_range || ((sed_cmd->beg_line == -1)
870 && (next_line == NULL))
871 ); 866 );
872 867
873 if (sed_cmd->invert ^ matched) { 868 if (sed_cmd->invert ^ matched) {
@@ -927,7 +922,7 @@ static void process_file(FILE * file)
927 922
928 pattern_space = 923 pattern_space =
929 xrealloc(pattern_space, 924 xrealloc(pattern_space,
930 strlen(pattern_space) + 2); 925 strlen(pattern_space) + 2);
931 tmp = strchr(pattern_space + offset, '\n'); 926 tmp = strchr(pattern_space + offset, '\n');
932 memmove(tmp + 1, tmp, strlen(tmp) + 1); 927 memmove(tmp + 1, tmp, strlen(tmp) + 1);
933 tmp[0] = '\\'; 928 tmp[0] = '\\';
@@ -952,8 +947,7 @@ static void process_file(FILE * file)
952#endif 947#endif
953 altered |= substituted; 948 altered |= substituted;
954 if (!be_quiet && altered && ((sed_cmd->next == NULL) 949 if (!be_quiet && altered && ((sed_cmd->next == NULL)
955 || (sed_cmd->next->cmd != 950 || (sed_cmd->next->cmd != 's'))) {
956 's'))) {
957 force_print = 1; 951 force_print = 1;
958 } 952 }
959 953
@@ -979,10 +973,8 @@ static void process_file(FILE * file)
979 /* multi-address case */ 973 /* multi-address case */
980 /* - matching text */ 974 /* - matching text */
981 || (sed_cmd->end_match 975 || (sed_cmd->end_match
982 && 976 && (regexec(sed_cmd->end_match, pattern_space, 0,
983 (regexec 977 NULL, 0) == 0))
984 (sed_cmd->end_match, pattern_space, 0, NULL,
985 0) == 0))
986 /* - matching line numbers */ 978 /* - matching line numbers */
987 || (sed_cmd->end_line > 0 979 || (sed_cmd->end_line > 0
988 && sed_cmd->end_line == linenum)) { 980 && sed_cmd->end_line == linenum)) {
@@ -994,11 +986,17 @@ static void process_file(FILE * file)
994 986
995 case 'r':{ 987 case 'r':{
996 FILE *outfile; 988 FILE *outfile;
989
997 outfile = fopen(sed_cmd->filename, "r"); 990 outfile = fopen(sed_cmd->filename, "r");
998 if (outfile) { 991 if (outfile) {
999 char *line; 992 char *line;
1000 while ((line = bb_get_chomped_line_from_file(outfile)) != NULL) { 993
1001 pattern_space = xrealloc(pattern_space, strlen(line) + strlen(pattern_space) + 2); 994 while ((line =
995 bb_get_chomped_line_from_file(outfile)) !=
996 NULL) {
997 pattern_space =
998 xrealloc(pattern_space,
999 strlen(line) + strlen(pattern_space) + 2);
1002 strcat(pattern_space, "\n"); 1000 strcat(pattern_space, "\n");
1003 strcat(pattern_space, line); 1001 strcat(pattern_space, line);
1004 } 1002 }
@@ -1023,8 +1021,7 @@ static void process_file(FILE * file)
1023 if (next_line) { 1021 if (next_line) {
1024 pattern_space = 1022 pattern_space =
1025 realloc(pattern_space, 1023 realloc(pattern_space,
1026 strlen(pattern_space) + 1024 strlen(pattern_space) + strlen(next_line) + 2);
1027 strlen(next_line) + 2);
1028 strcat(pattern_space, "\n"); 1025 strcat(pattern_space, "\n");
1029 strcat(pattern_space, next_line); 1026 strcat(pattern_space, next_line);
1030 next_line = bb_get_chomped_line_from_file(file); 1027 next_line = bb_get_chomped_line_from_file(file);
@@ -1077,39 +1074,23 @@ static void process_file(FILE * file)
1077 */ 1074 */
1078 if (matched) { 1075 if (matched) {
1079 if ( 1076 if (
1080 /* this is a single-address command or... */ 1077 /* this is a single-address command or... */
1081 (sed_cmd->end_line == 0 && sed_cmd->end_match == NULL) 1078 (sed_cmd->end_line == 0 && sed_cmd->end_match == NULL)
1082 || ( 1079 /* If only one address */
1083 /* If only one address */ 1080 /* we were in the middle of our address range (this
1084 /* we were in the middle of our address range (this 1081 * isn't the first time through) and.. */
1085 * isn't the first time through) and.. */ 1082 || ((still_in_range == 1)
1086 (still_in_range == 1) && ( 1083 /* this line number is the last address we're looking for or... */
1087 /* this line number is the last address we're looking for or... */ 1084 && ((sed_cmd->end_line
1088 (sed_cmd-> 1085 && (sed_cmd->end_line == linenum))
1089 end_line 1086 /* this line matches our last address regex */
1090 && (sed_cmd-> 1087 || (sed_cmd->end_match
1091 end_line == 1088 && (regexec(sed_cmd->end_match, pattern_space,
1092 linenum)) 1089 0, NULL, 0) == 0))))) {
1093 ||
1094 /* this line matches our last address regex */
1095 (sed_cmd->
1096 end_match
1097 &&
1098 (regexec
1099 (sed_cmd->
1100 end_match,
1101 pattern_space,
1102 0, NULL,
1103 0) == 0))
1104 )
1105 )
1106 ) {
1107 /* we're out of our address range */ 1090 /* we're out of our address range */
1108 still_in_range = 0; 1091 still_in_range = 0;
1109 } 1092 } else {
1110 1093 /* didn't hit the exit? then we're still in the middle of an address range */
1111 /* didn't hit the exit? then we're still in the middle of an address range */
1112 else {
1113 still_in_range = 1; 1094 still_in_range = 1;
1114 } 1095 }
1115 } 1096 }