Print this page
make: use the more modern wchar routines, not widec.h
*** 109,121 ****
*string_end = (int) nul_char;
/*
* Check if there are any ( or [ that are not prefixed with $.
* If there are, we have to deal with the lib.a(members) format.
*/
! for (cp = (wchar_t *) wschr(string_start, (int) parenleft_char);
cp != NULL;
! cp = (wchar_t *) wschr(cp + 1, (int) parenleft_char)) {
if (*(cp - 1) != (int) dollar_char) {
*string_end = ch;
return enter_member_name(string_start,
cp,
string_end,
--- 109,121 ----
*string_end = (int) nul_char;
/*
* Check if there are any ( or [ that are not prefixed with $.
* If there are, we have to deal with the lib.a(members) format.
*/
! for (cp = (wchar_t *) wcschr(string_start, (int) parenleft_char);
cp != NULL;
! cp = (wchar_t *) wcschr(cp + 1, (int) parenleft_char)) {
if (*(cp - 1) != (int) dollar_char) {
*string_end = ch;
return enter_member_name(string_start,
cp,
string_end,
*** 214,224 ****
entry = true;
member_start++;
}
/* Move the library name to the buffer where we intend to build the */
/* "lib.a(member)" for each member */
! (void) wsncpy(buffer, lib_start, member_start - lib_start);
memberp = buffer + (member_start-lib_start);
while (1) {
long_member_name = NULL;
/* Skip leading spaces */
for (;
--- 214,224 ----
entry = true;
member_start++;
}
/* Move the library name to the buffer where we intend to build the */
/* "lib.a(member)" for each member */
! (void) wcsncpy(buffer, lib_start, member_start - lib_start);
memberp = buffer + (member_start-lib_start);
while (1) {
long_member_name = NULL;
/* Skip leading spaces */
for (;
*** 243,253 ****
}
}
/* Internalize the member name */
member = GETNAME(memberp, cq - memberp);
*cq = 0;
! if ((q = (wchar_t *) wsrchr(memberp, (int) slash_char)) == NULL) {
q = memberp;
}
if ((cq - q > (int) ar_member_name_len) &&
!has_dollar) {
*cq++ = (int) parenright_char;
--- 243,253 ----
}
}
/* Internalize the member name */
member = GETNAME(memberp, cq - memberp);
*cq = 0;
! if ((q = (wchar_t *) wcsrchr(memberp, (int) slash_char)) == NULL) {
q = memberp;
}
if ((cq - q > (int) ar_member_name_len) &&
!has_dollar) {
*cq++ = (int) parenright_char;
*** 395,405 ****
name_string = string;
string2 = name_string; /*save for free*/
current_component =
cdp =
string =
! ALLOC_WC((length = wslen(name_string)) + 1);
while (length > 0) {
if (((length > 3) &&
(name_string[0] == (int) slash_char) &&
(name_string[1] == (int) period_char) &&
(name_string[2] == (int) period_char) &&
--- 395,405 ----
name_string = string;
string2 = name_string; /*save for free*/
current_component =
cdp =
string =
! ALLOC_WC((length = wcslen(name_string)) + 1);
while (length > 0) {
if (((length > 3) &&
(name_string[0] == (int) slash_char) &&
(name_string[1] == (int) period_char) &&
(name_string[2] == (int) period_char) &&
*** 656,666 ****
Wstring tstr(target);
wchar_t * wcb = tstr.get_string();
if ((makefile_type == reading_makefile) &&
(default_target_to_build == NULL) &&
((wcb[0] != (int) period_char) ||
! wschr(wcb, (int) slash_char))) {
/* BID 1181577: $(EMPTY_MACRO) + $(EMPTY_MACRO):
** The target with empty name cannot be default_target_to_build
*/
if (target->hash.length != 0)
--- 656,666 ----
Wstring tstr(target);
wchar_t * wcb = tstr.get_string();
if ((makefile_type == reading_makefile) &&
(default_target_to_build == NULL) &&
((wcb[0] != (int) period_char) ||
! wcschr(wcb, (int) slash_char))) {
/* BID 1181577: $(EMPTY_MACRO) + $(EMPTY_MACRO):
** The target with empty name cannot be default_target_to_build
*/
if (target->hash.length != 0)
*** 745,764 ****
if (command != NULL) {
if (line->body.line.command_template != NULL) {
line->body.line.command_template_redefined =
true;
if ((wcb[0] == (int) period_char) &&
! !wschr(wcb, (int) slash_char)) {
line->body.line.command_template =
command;
}
} else {
line->body.line.command_template = command;
}
} else {
if ((wcb[0] == (int) period_char) &&
! !wschr(wcb, (int) slash_char)) {
line->body.line.command_template = command;
}
}
break;
case rereading_statefile:
--- 745,764 ----
if (command != NULL) {
if (line->body.line.command_template != NULL) {
line->body.line.command_template_redefined =
true;
if ((wcb[0] == (int) period_char) &&
! !wcschr(wcb, (int) slash_char)) {
line->body.line.command_template =
command;
}
} else {
line->body.line.command_template = command;
}
} else {
if ((wcb[0] == (int) period_char) &&
! !wcschr(wcb, (int) slash_char)) {
line->body.line.command_template = command;
}
}
break;
case rereading_statefile:
*** 945,955 ****
/* get patterns count */
Wstring wcb(target);
cp = wcb.get_string();
while (true) {
! cp = (wchar_t *) wschr(cp, (int) percent_char);
if (cp != NULL) {
result->patterns_total++;
cp++;
} else {
break;
--- 945,955 ----
/* get patterns count */
Wstring wcb(target);
cp = wcb.get_string();
while (true) {
! cp = (wchar_t *) wcschr(cp, (int) percent_char);
if (cp != NULL) {
result->patterns_total++;
cp++;
} else {
break;
*** 962,972 ****
/* then create patterns */
cp = wcb.get_string();
pattern = 0;
while (true) {
! cp1 = (wchar_t *) wschr(cp, (int) percent_char);
if (cp1 != NULL) {
result->patterns[pattern] = GETNAME(cp, cp1 - cp);
cp = cp1 + 1;
pattern++;
} else {
--- 962,972 ----
/* then create patterns */
cp = wcb.get_string();
pattern = 0;
while (true) {
! cp1 = (wchar_t *) wcschr(cp, (int) percent_char);
if (cp1 != NULL) {
result->patterns[pattern] = GETNAME(cp, cp1 - cp);
cp = cp1 + 1;
pattern++;
} else {
*** 996,1006 ****
if (depe->name->percent) {
/* get patterns count */
wcb1.init(depe->name);
cp = wcb1.get_string();
while (true) {
! cp = (wchar_t *) wschr(cp, (int) percent_char);
if (cp != NULL) {
depe->patterns_total++;
cp++;
} else {
break;
--- 996,1006 ----
if (depe->name->percent) {
/* get patterns count */
wcb1.init(depe->name);
cp = wcb1.get_string();
while (true) {
! cp = (wchar_t *) wcschr(cp, (int) percent_char);
if (cp != NULL) {
depe->patterns_total++;
cp++;
} else {
break;
*** 1013,1023 ****
/* then create patterns */
cp = wcb1.get_string();
pattern = 0;
while (true) {
! cp1 = (wchar_t *) wschr(cp, (int) percent_char);
if (cp1 != NULL) {
depe->patterns[pattern] = GETNAME(cp, cp1 - cp);
cp = cp1 + 1;
pattern++;
} else {
--- 1013,1023 ----
/* then create patterns */
cp = wcb1.get_string();
pattern = 0;
while (true) {
! cp1 = (wchar_t *) wcschr(cp, (int) percent_char);
if (cp1 != NULL) {
depe->patterns[pattern] = GETNAME(cp, cp1 - cp);
cp = cp1 + 1;
pattern++;
} else {
*** 1566,1581 ****
int i;
int len;
/* Check if the path is already relative. */
if (to[0] != (int) slash_char) {
! (void) wscpy(result, to);
return;
}
MBSTOWCS(wcs_buffer, get_current_path());
! from = allocated = (wchar_t *) wsdup(wcs_buffer);
/*
* Find the number of components in the from name.
* ncomp = number of slashes + 1.
*/
--- 1566,1581 ----
int i;
int len;
/* Check if the path is already relative. */
if (to[0] != (int) slash_char) {
! (void) wcscpy(result, to);
return;
}
MBSTOWCS(wcs_buffer, get_current_path());
! from = allocated = (wchar_t *) wcsdup(wcs_buffer);
/*
* Find the number of components in the from name.
* ncomp = number of slashes + 1.
*/
*** 1606,1616 ****
* for either name terminating exactly.
*/
if (*from == (int) nul_char) {
if (*to == (int) nul_char) {
MBSTOWCS(wcs_buffer, ".");
! (void) wscpy(result, wcs_buffer);
retmem(allocated);
return;
}
if (*to == (int) slash_char) {
ncomps--;
--- 1606,1616 ----
* for either name terminating exactly.
*/
if (*from == (int) nul_char) {
if (*to == (int) nul_char) {
MBSTOWCS(wcs_buffer, ".");
! (void) wcscpy(result, wcs_buffer);
retmem(allocated);
return;
}
if (*to == (int) slash_char) {
ncomps--;
*** 1621,1639 ****
tocomp = to;
}
/* Add on the ".."s. */
for (i = 0; i < ncomps; i++) {
MBSTOWCS(wcs_buffer, "../");
! (void) wscat(result, wcs_buffer);
}
/* Add on the remainder of the to name, if any. */
if (*tocomp == (int) nul_char) {
! len = wslen(result);
result[len - 1] = (int) nul_char;
} else {
! (void) wscat(result, tocomp);
}
retmem(allocated);
return;
}
--- 1621,1639 ----
tocomp = to;
}
/* Add on the ".."s. */
for (i = 0; i < ncomps; i++) {
MBSTOWCS(wcs_buffer, "../");
! (void) wcscat(result, wcs_buffer);
}
/* Add on the remainder of the to name, if any. */
if (*tocomp == (int) nul_char) {
! len = wcslen(result);
result[len - 1] = (int) nul_char;
} else {
! (void) wcscat(result, tocomp);
}
retmem(allocated);
return;
}
*** 1804,1814 ****
MBSTOWCS(colon_shell, ":shell");
}
Wstring nms((*name));
wchar_t * wcb = nms.get_string();
! colon = (wchar_t *) wsrchr(wcb, (int) colon_char);
if ((colon != NULL) && (IS_WEQUAL(colon, colon_sh) || IS_WEQUAL(colon, colon_shell))) {
INIT_STRING_FROM_STACK(destination, buffer);
if(*value == NULL) {
buffer[0] = 0;
--- 1804,1814 ----
MBSTOWCS(colon_shell, ":shell");
}
Wstring nms((*name));
wchar_t * wcb = nms.get_string();
! colon = (wchar_t *) wcsrchr(wcb, (int) colon_char);
if ((colon != NULL) && (IS_WEQUAL(colon, colon_sh) || IS_WEQUAL(colon, colon_shell))) {
INIT_STRING_FROM_STACK(destination, buffer);
if(*value == NULL) {
buffer[0] = 0;