Projects
openEuler:24.03:SP1:Everything
glibc
_service:tar_scm:use-region-to-instead-of-count...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:use-region-to-instead-of-country-for-extract-timezon.patch of Package glibc
From 1c20cf491471a4a70f103a9d052fcca993eaa341 Mon Sep 17 00:00:00 2001 From: Qingqing Li <liqingqing3@huawei.com> Date: Tue, 22 Feb 2022 15:00:55 +0800 Subject: [PATCH] use region to instead of country for extract timezone selection. Co-authored-by: liusirui <liusirui@huawei.com> --- timezone/tzselect.ksh | 97 +++++++++---------------------------------- 1 file changed, 20 insertions(+), 77 deletions(-) diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh index 18fce27e..414bfa2a 100755 --- a/timezone/tzselect.ksh +++ b/timezone/tzselect.ksh @@ -51,7 +51,7 @@ say() { coord= location_limit=10 -zonetabtype=zone1970 +zonetabtype=zone usage="Usage: tzselect [--version] [--help] [-c COORD] [-n LIMIT] Select a timezone interactively. @@ -398,94 +398,38 @@ while '` ;; *) - # Get list of names of countries in the continent or ocean. - countries=`$AWK \ + # Get list of regions in the continent or ocean. + timezones=`$AWK \ -v continent="$continent" \ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ ' BEGIN { FS = "\t" } /^#/ { next } $3 ~ ("^" continent "/") { - ncc = split($1, cc, /,/) + ncc = split($3, cc, /,/) for (i = 1; i <= ncc; i++) if (!cc_seen[cc[i]]++) cc_list[++ccs] = cc[i] } END { - while (getline <TZ_COUNTRY_TABLE) { - if ($0 !~ /^#/) cc_name[$1] = $2 - } for (i = 1; i <= ccs; i++) { - country = cc_list[i] - if (cc_name[country]) { - country = cc_name[country] - } - print country + print cc_list[i] } } ' <"$TZ_ZONE_TABLE" | sort -f` - - # If there's more than one country, ask the user which one. - case $countries in - *"$newline"*) - echo >&2 'Please select a country' \ - 'whose clocks agree with yours.' - doselect $countries - country=$select_result;; - *) - country=$countries - esac - - - # Get list of timezones in the country. - regions=`$AWK \ - -v country="$country" \ - -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ - ' - BEGIN { - FS = "\t" - cc = country - while (getline <TZ_COUNTRY_TABLE) { - if ($0 !~ /^#/ && country == $2) { - cc = $1 - break - } - } - } - /^#/ { next } - $1 ~ cc { print $4 } - ' <"$TZ_ZONE_TABLE"` - - - # If there's more than one region, ask the user which one. - case $regions in - *"$newline"*) - echo >&2 'Please select one of the following timezones.' - doselect $regions - region=$select_result;; - *) - region=$regions - esac + regions=[] + index=0 + for item in $timezones; do + regions[$index]=`echo $item | awk -F '/' '{print $2}'` + index=$(($index+1)) + done + echo >&2 'Please select a timezone' \ + 'whose clocks agree with yours.' + doselect ${regions[@]} + region=$select_result # Determine TZ from country and region. - TZ=`$AWK \ - -v country="$country" \ - -v region="$region" \ - -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ - ' - BEGIN { - FS = "\t" - cc = country - while (getline <TZ_COUNTRY_TABLE) { - if ($0 !~ /^#/ && country == $2) { - cc = $1 - break - } - } - } - /^#/ { next } - $1 ~ cc && $4 == region { print $3 } - ' <"$TZ_ZONE_TABLE"` + TZ=$continent/$region esac # Make sure the corresponding zoneinfo file exists. @@ -523,11 +467,10 @@ Universal Time is now: $UTdate." echo >&2 "" echo >&2 "The following information has been given:" echo >&2 "" - case $country%$region%$coord in - ?*%?*%) say >&2 " $country$newline $region";; - ?*%%) say >&2 " $country";; - %?*%?*) say >&2 " coord $coord$newline $region";; - %%?*) say >&2 " coord $coord";; + case $region%$coord in + ?*%) say >&2 " $region";; + ?*%?*) say >&2 " coord $coord$newline $region";; + %?*) say >&2 " coord $coord";; *) say >&2 " TZ='$TZ'" esac say >&2 "" -- 2.27.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2