Print this page
make: use the more modern wchar routines, not widec.h

*** 37,47 **** #include <mksh/i18n.h> /* get_char_semantics_value() */ #include <mksh/macro.h> #include <mksh/misc.h> /* retmem() */ #include <mksh/read.h> /* get_next_block_fn() */ - #include <widec.h> #include <libintl.h> /* * File table of contents */ --- 37,46 ----
*** 153,163 **** value->string_mb); } value->being_expanded = true; /* Setup the structure we read from */ Wstring vals(value); ! sourceb.string.text.p = sourceb.string.buffer.start = wsdup(vals.get_string()); sourceb.string.free_after_use = true; sourceb.string.text.end = sourceb.string.buffer.end = sourceb.string.text.p + value->hash.length; sourceb.previous = NULL; --- 152,162 ---- value->string_mb); } value->being_expanded = true; /* Setup the structure we read from */ Wstring vals(value); ! sourceb.string.text.p = sourceb.string.buffer.start = wcsdup(vals.get_string()); sourceb.string.free_after_use = true; sourceb.string.text.end = sourceb.string.buffer.end = sourceb.string.text.p + value->hash.length; sourceb.previous = NULL;
*** 457,470 **** fatal_reader_mksh(gettext("Illegal macro reference `%s'"), mbs_buffer); } /* Internalize the macro name using the first char only. */ name = GETNAME(string.buffer.start, 1); ! (void) wscpy(string.buffer.start, string.buffer.start + 2); } /* Check for other kinds of translations. */ ! if ((colon = (wchar_t *) wschr(string.buffer.start, (int) colon_char)) != NULL) { /* * We have a $(FOO:.c=.o) type translation. * Get the name of the macro proper. */ --- 456,469 ---- fatal_reader_mksh(gettext("Illegal macro reference `%s'"), mbs_buffer); } /* Internalize the macro name using the first char only. */ name = GETNAME(string.buffer.start, 1); ! (void) wcscpy(string.buffer.start, string.buffer.start + 2); } /* Check for other kinds of translations. */ ! if ((colon = (wchar_t *) wcschr(string.buffer.start, (int) colon_char)) != NULL) { /* * We have a $(FOO:.c=.o) type translation. * Get the name of the macro proper. */
*** 474,526 **** } /* Pickup all the translations. */ if (IS_WEQUAL(colon, colon_sh) || IS_WEQUAL(colon, colon_shell)) { replacement = sh_replace; } else if ((svr4) || ! ((percent = (wchar_t *) wschr(colon + 1, (int) percent_char)) == NULL)) { while (colon != NULL) { ! if ((eq = (wchar_t *) wschr(colon + 1, (int) equal_char)) == NULL) { fatal_reader_mksh(gettext("= missing from replacement macro reference")); } left_tail_len = eq - colon - 1; if(left_tail) { retmem(left_tail); } left_tail = ALLOC_WC(left_tail_len + 1); ! (void) wsncpy(left_tail, colon + 1, eq - colon - 1); left_tail[eq - colon - 1] = (int) nul_char; replacement = suffix_replace; ! if ((colon = (wchar_t *) wschr(eq + 1, (int) colon_char)) != NULL) { tmp_len = colon - eq; if(right_tail) { retmem(right_tail); } right_tail = ALLOC_WC(tmp_len); ! (void) wsncpy(right_tail, eq + 1, colon - eq - 1); right_tail[colon - eq - 1] = (int) nul_char; } else { if(right_tail) { retmem(right_tail); } ! right_tail = ALLOC_WC(wslen(eq) + 1); ! (void) wscpy(right_tail, eq + 1); } } } else { ! if ((eq = (wchar_t *) wschr(colon + 1, (int) equal_char)) == NULL) { fatal_reader_mksh(gettext("= missing from replacement macro reference")); } ! if ((percent = (wchar_t *) wschr(colon + 1, (int) percent_char)) == NULL) { fatal_reader_mksh(gettext("%% missing from replacement macro reference")); } if (eq < percent) { fatal_reader_mksh(gettext("%% missing from replacement macro reference")); --- 473,525 ---- } /* Pickup all the translations. */ if (IS_WEQUAL(colon, colon_sh) || IS_WEQUAL(colon, colon_shell)) { replacement = sh_replace; } else if ((svr4) || ! ((percent = (wchar_t *) wcschr(colon + 1, (int) percent_char)) == NULL)) { while (colon != NULL) { ! if ((eq = (wchar_t *) wcschr(colon + 1, (int) equal_char)) == NULL) { fatal_reader_mksh(gettext("= missing from replacement macro reference")); } left_tail_len = eq - colon - 1; if(left_tail) { retmem(left_tail); } left_tail = ALLOC_WC(left_tail_len + 1); ! (void) wcsncpy(left_tail, colon + 1, eq - colon - 1); left_tail[eq - colon - 1] = (int) nul_char; replacement = suffix_replace; ! if ((colon = (wchar_t *) wcschr(eq + 1, (int) colon_char)) != NULL) { tmp_len = colon - eq; if(right_tail) { retmem(right_tail); } right_tail = ALLOC_WC(tmp_len); ! (void) wcsncpy(right_tail, eq + 1, colon - eq - 1); right_tail[colon - eq - 1] = (int) nul_char; } else { if(right_tail) { retmem(right_tail); } ! right_tail = ALLOC_WC(wcslen(eq) + 1); ! (void) wcscpy(right_tail, eq + 1); } } } else { ! if ((eq = (wchar_t *) wcschr(colon + 1, (int) equal_char)) == NULL) { fatal_reader_mksh(gettext("= missing from replacement macro reference")); } ! if ((percent = (wchar_t *) wcschr(colon + 1, (int) percent_char)) == NULL) { fatal_reader_mksh(gettext("%% missing from replacement macro reference")); } if (eq < percent) { fatal_reader_mksh(gettext("%% missing from replacement macro reference"));
*** 530,540 **** tmp_len = percent - colon; if(left_head) { retmem(left_head); } left_head = ALLOC_WC(tmp_len); ! (void) wsncpy(left_head, colon + 1, percent - colon - 1); left_head[percent-colon-1] = (int) nul_char; left_head_len = percent-colon-1; } else { --- 529,539 ---- tmp_len = percent - colon; if(left_head) { retmem(left_head); } left_head = ALLOC_WC(tmp_len); ! (void) wcsncpy(left_head, colon + 1, percent - colon - 1); left_head[percent-colon-1] = (int) nul_char; left_head_len = percent-colon-1; } else {
*** 546,594 **** tmp_len = eq - percent; if(left_tail) { retmem(left_tail); } left_tail = ALLOC_WC(tmp_len); ! (void) wsncpy(left_tail, percent + 1, eq - percent - 1); left_tail[eq-percent-1] = (int) nul_char; left_tail_len = eq-percent-1; } else { left_tail = NULL; left_tail_len = 0; } ! if ((percent = (wchar_t *) wschr(++eq, (int) percent_char)) == NULL) { ! right_hand[0] = ALLOC_WC(wslen(eq) + 1); right_hand[1] = NULL; ! (void) wscpy(right_hand[0], eq); } else { i = 0; do { right_hand[i] = ALLOC_WC(percent-eq+1); ! (void) wsncpy(right_hand[i], eq, percent - eq); right_hand[i][percent-eq] = (int) nul_char; if (i++ >= VSIZEOF(right_hand)) { fatal_mksh(gettext("Too many %% in pattern")); } eq = percent + 1; if (eq[0] == (int) nul_char) { MBSTOWCS(wcs_buffer, ""); ! right_hand[i] = (wchar_t *) wsdup(wcs_buffer); i++; break; } ! } while ((percent = (wchar_t *) wschr(eq, (int) percent_char)) != NULL); if (eq[0] != (int) nul_char) { ! right_hand[i] = ALLOC_WC(wslen(eq) + 1); ! (void) wscpy(right_hand[i], eq); i++; } right_hand[i] = NULL; } replacement = pattern_replace; --- 545,593 ---- tmp_len = eq - percent; if(left_tail) { retmem(left_tail); } left_tail = ALLOC_WC(tmp_len); ! (void) wcsncpy(left_tail, percent + 1, eq - percent - 1); left_tail[eq-percent-1] = (int) nul_char; left_tail_len = eq-percent-1; } else { left_tail = NULL; left_tail_len = 0; } ! if ((percent = (wchar_t *) wcschr(++eq, (int) percent_char)) == NULL) { ! right_hand[0] = ALLOC_WC(wcslen(eq) + 1); right_hand[1] = NULL; ! (void) wcscpy(right_hand[0], eq); } else { i = 0; do { right_hand[i] = ALLOC_WC(percent-eq+1); ! (void) wcsncpy(right_hand[i], eq, percent - eq); right_hand[i][percent-eq] = (int) nul_char; if (i++ >= VSIZEOF(right_hand)) { fatal_mksh(gettext("Too many %% in pattern")); } eq = percent + 1; if (eq[0] == (int) nul_char) { MBSTOWCS(wcs_buffer, ""); ! right_hand[i] = (wchar_t *) wcsdup(wcs_buffer); i++; break; } ! } while ((percent = (wchar_t *) wcschr(eq, (int) percent_char)) != NULL); if (eq[0] != (int) nul_char) { ! right_hand[i] = ALLOC_WC(wcslen(eq) + 1); ! (void) wcscpy(right_hand[i], eq); i++; } right_hand[i] = NULL; } replacement = pattern_replace;
*** 694,704 **** */ if (p != NULL) { chr = *p; *p = (int) nul_char; } ! eq = (wchar_t *) wsrchr(block_start, (int) slash_char); if (p != NULL) { *p = chr; } if ((eq == NULL) || (eq > p)) { MBSTOWCS(wcs_buffer, "."); --- 693,703 ---- */ if (p != NULL) { chr = *p; *p = (int) nul_char; } ! eq = (wchar_t *) wcsrchr(block_start, (int) slash_char); if (p != NULL) { *p = chr; } if ((eq == NULL) || (eq > p)) { MBSTOWCS(wcs_buffer, ".");
*** 716,726 **** */ if (p != NULL) { chr = *p; *p = (int) nul_char; } ! eq = (wchar_t *) wsrchr(block_start, (int) slash_char); if (p != NULL) { *p = chr; } if ((eq == NULL) || (eq > p)) { append_string(block_start, --- 715,725 ---- */ if (p != NULL) { chr = *p; *p = (int) nul_char; } ! eq = (wchar_t *) wcsrchr(block_start, (int) slash_char); if (p != NULL) { *p = chr; } if ((eq == NULL) || (eq > p)) { append_string(block_start,
*** 917,933 **** if ((pipe = popen(mach_command, "r")) == NULL) { fatal_mksh(gettext("Execute of %s failed"), mach_command); } while (fgets(mb_buf, sizeof(mb_buf), pipe) != NULL) { MBSTOWCS(wcs_buffer, mb_buf); ! append_string(wcs_buffer, &result_string, wslen(wcs_buffer)); } if (pclose(pipe) != 0) { fatal_mksh(gettext("Execute of %s failed"), mach_command); } ! value = GETNAME(result_string.buffer.start, wslen(result_string.buffer.start)); if (set_host) { (void) setvar_daemon(host_arch, value, false, no_daemon, true, 0); } if (set_target) { --- 916,932 ---- if ((pipe = popen(mach_command, "r")) == NULL) { fatal_mksh(gettext("Execute of %s failed"), mach_command); } while (fgets(mb_buf, sizeof(mb_buf), pipe) != NULL) { MBSTOWCS(wcs_buffer, mb_buf); ! append_string(wcs_buffer, &result_string, wcslen(wcs_buffer)); } if (pclose(pipe) != 0) { fatal_mksh(gettext("Execute of %s failed"), mach_command); } ! value = GETNAME(result_string.buffer.start, wcslen(result_string.buffer.start)); if (set_host) { (void) setvar_daemon(host_arch, value, false, no_daemon, true, 0); } if (set_target) {
*** 972,988 **** if ((pipe = popen(arch_command, "r")) == NULL) { fatal_mksh(gettext("Execute of %s failed"), arch_command); } while (fgets(mb_buf, sizeof(mb_buf), pipe) != NULL) { MBSTOWCS(wcs_buffer, mb_buf); ! append_string(wcs_buffer, &result_string, wslen(wcs_buffer)); } if (pclose(pipe) != 0) { fatal_mksh(gettext("Execute of %s failed"), arch_command); } ! value = GETNAME(result_string.buffer.start, wslen(result_string.buffer.start)); if (set_host) { (void) setvar_daemon(host_mach, value, false, no_daemon, true, 0); } if (set_target) { --- 971,987 ---- if ((pipe = popen(arch_command, "r")) == NULL) { fatal_mksh(gettext("Execute of %s failed"), arch_command); } while (fgets(mb_buf, sizeof(mb_buf), pipe) != NULL) { MBSTOWCS(wcs_buffer, mb_buf); ! append_string(wcs_buffer, &result_string, wcslen(wcs_buffer)); } if (pclose(pipe) != 0) { fatal_mksh(gettext("Execute of %s failed"), arch_command); } ! value = GETNAME(result_string.buffer.start, wcslen(result_string.buffer.start)); if (set_host) { (void) setvar_daemon(host_mach, value, false, no_daemon, true, 0); } if (set_target) {
*** 1296,1323 **** wchar_t * wcb_ha = ha_str.get_string(); wchar_t * wcb_ta = ta_str.get_string(); wchar_t * wcb_vr = vr_str.get_string(); length = 32 + ! wslen(wcb_ha) + ! wslen(wcb_ta) + ! wslen(wcb_vr); old_vr = wcb_vr; MBSTOWCS(wcs_buffer, "/usr/arch/"); if (IS_WEQUALN(old_vr, wcs_buffer, ! wslen(wcs_buffer))) { ! old_vr = (wchar_t *) wschr(old_vr, (int) colon_char) + 1; } ! if ( (ha == ta) || (wslen(wcb_ta) == 0) ) { new_value = old_vr; } else { new_value = ALLOC_WC(length); new_value_allocated = true; WCSTOMBS(mbs_buffer, old_vr); ! (void) wsprintf(new_value, ! "/usr/arch/%s/%s:%s", ha->string_mb + 1, ta->string_mb + 1, mbs_buffer); } if (new_value[0] != 0) { --- 1295,1322 ---- wchar_t * wcb_ha = ha_str.get_string(); wchar_t * wcb_ta = ta_str.get_string(); wchar_t * wcb_vr = vr_str.get_string(); length = 32 + ! wcslen(wcb_ha) + ! wcslen(wcb_ta) + ! wcslen(wcb_vr); old_vr = wcb_vr; MBSTOWCS(wcs_buffer, "/usr/arch/"); if (IS_WEQUALN(old_vr, wcs_buffer, ! wcslen(wcs_buffer))) { ! old_vr = (wchar_t *) wcschr(old_vr, (int) colon_char) + 1; } ! if ( (ha == ta) || (wcslen(wcb_ta) == 0) ) { new_value = old_vr; } else { new_value = ALLOC_WC(length); new_value_allocated = true; WCSTOMBS(mbs_buffer, old_vr); ! (void) swprintf(new_value, length * SIZEOFWCHAR_T, ! L"/usr/arch/%s/%s:%s", ha->string_mb + 1, ta->string_mb + 1, mbs_buffer); } if (new_value[0] != 0) {