Changeset View
Changeset View
Standalone View
Standalone View
contrib/tzcode/Makefile
Show All 29 Lines | |||||
# Alternatively, if you discover you've got the wrong timezone, you can just | # Alternatively, if you discover you've got the wrong timezone, you can just | ||||
# 'zic -l -' to remove it, or 'zic -l rightzone' to change it. | # 'zic -l -' to remove it, or 'zic -l rightzone' to change it. | ||||
# Use the command | # Use the command | ||||
# make zonenames | # make zonenames | ||||
# to get a list of the values you can use for LOCALTIME. | # to get a list of the values you can use for LOCALTIME. | ||||
LOCALTIME= Factory | LOCALTIME= Factory | ||||
# The POSIXRULES macro controls interpretation of nonstandard and obsolete | # The POSIXRULES macro controls interpretation of POSIX-like TZ | ||||
# POSIX-like TZ settings like TZ='EET-2EEST' that lack DST transition rules. | # settings like TZ='EET-2EEST' that lack DST transition rules. | ||||
# Such a setting uses the rules in a template file to determine | |||||
# "spring forward" and "fall back" days and times; the environment | |||||
# variable itself specifies UT offsets of standard and daylight saving time. | |||||
# | |||||
# If POSIXRULES is '-', no template is installed; this is the default. | # If POSIXRULES is '-', no template is installed; this is the default. | ||||
# | |||||
# Any other value for POSIXRULES is obsolete and should not be relied on, as: | # Any other value for POSIXRULES is obsolete and should not be relied on, as: | ||||
# * It does not work correctly in popular implementations such as GNU/Linux. | # * It does not work correctly in popular implementations such as GNU/Linux. | ||||
# * It does not work even in tzcode, except for historical timestamps | # * It does not work even in tzcode, except for historical timestamps | ||||
# that precede the last explicit transition in the POSIXRULES file. | # that precede the last explicit transition in the POSIXRULES file. | ||||
# Hence it typically does not work for current and future timestamps. | # Hence it typically does not work for current and future timestamps. | ||||
# In short, software should avoid ruleless settings like TZ='EET-2EEST' | |||||
# and so should not depend on the value of POSIXRULES. | |||||
# | |||||
# If, despite the above, you want a template for handling these settings, | # If, despite the above, you want a template for handling these settings, | ||||
# you can change the line below (after finding the timezone you want in the | # you can change the line below (after finding the timezone you want in the | ||||
# one of the $(TDATA) source files, or adding it to a source file). | # one of the $(TDATA) source files, or adding it to a source file). | ||||
# Alternatively, if you discover you've got the wrong timezone, you can just | # Alternatively, if you discover you've got the wrong timezone, you can just | ||||
# 'zic -p -' to remove it, or 'zic -p rightzone' to change it. | # 'zic -p -' to remove it, or 'zic -p rightzone' to change it. | ||||
# Use the command | # Use the command | ||||
# make zonenames | # make zonenames | ||||
# to get a list of the values you can use for POSIXRULES. | # to get a list of the values you can use for POSIXRULES. | ||||
POSIXRULES= - | POSIXRULES= - | ||||
# Also see TZDEFRULESTRING below, which takes effect only | # Also see TZDEFRULESTRING below, which takes effect only | ||||
# if the time zone files cannot be accessed. | # if POSIXRULES is '-' or if the template file cannot be accessed. | ||||
# Installation locations. | # Installation locations. | ||||
# | # | ||||
# The defaults are suitable for Debian, except that if REDO is | # The defaults are suitable for Debian, except that if REDO is | ||||
# posix_right or right_posix then files that Debian puts under | # posix_right or right_posix then files that Debian puts under | ||||
# /usr/share/zoneinfo/posix and /usr/share/zoneinfo/right are instead | # /usr/share/zoneinfo/posix and /usr/share/zoneinfo/right are instead | ||||
# put under /usr/share/zoneinfo-posix and /usr/share/zoneinfo-leaps, | # put under /usr/share/zoneinfo-posix and /usr/share/zoneinfo-leaps, | ||||
▲ Show 20 Lines • Show All 131 Lines • ▼ Show 20 Lines | |||||
# -DEPOCH_LOCAL if the 'time' function returns local time not UT | # -DEPOCH_LOCAL if the 'time' function returns local time not UT | ||||
# -DEPOCH_OFFSET=N if the 'time' function returns a value N greater | # -DEPOCH_OFFSET=N if the 'time' function returns a value N greater | ||||
# than what POSIX specifies, assuming local time is UT. | # than what POSIX specifies, assuming local time is UT. | ||||
# For example, N is 252460800 on AmigaOS. | # For example, N is 252460800 on AmigaOS. | ||||
# -DHAVE_DECL_ASCTIME_R=0 if <time.h> does not declare asctime_r | # -DHAVE_DECL_ASCTIME_R=0 if <time.h> does not declare asctime_r | ||||
# -DHAVE_DECL_ENVIRON if <unistd.h> declares 'environ' | # -DHAVE_DECL_ENVIRON if <unistd.h> declares 'environ' | ||||
# -DHAVE_DECL_TIMEGM=0 if <time.h> does not declare timegm | # -DHAVE_DECL_TIMEGM=0 if <time.h> does not declare timegm | ||||
# -DHAVE_DIRECT_H if mkdir needs <direct.h> (MS-Windows) | # -DHAVE_DIRECT_H if mkdir needs <direct.h> (MS-Windows) | ||||
# -DHAVE_GENERIC=0 if _Generic does not work* | # -DHAVE__GENERIC=0 if _Generic does not work* | ||||
# -DHAVE_GETRANDOM if getrandom works (e.g., GNU/Linux), | # -DHAVE_GETRANDOM if getrandom works (e.g., GNU/Linux), | ||||
# -DHAVE_GETRANDOM=0 to avoid using getrandom | # -DHAVE_GETRANDOM=0 to avoid using getrandom | ||||
# -DHAVE_GETTEXT if gettext works (e.g., GNU/Linux, FreeBSD, Solaris), | # -DHAVE_GETTEXT if gettext works (e.g., GNU/Linux, FreeBSD, Solaris), | ||||
# where LDLIBS also needs to contain -lintl on some hosts; | # where LDLIBS also needs to contain -lintl on some hosts; | ||||
# -DHAVE_GETTEXT=0 to avoid using gettext | # -DHAVE_GETTEXT=0 to avoid using gettext | ||||
# -DHAVE_INCOMPATIBLE_CTIME_R if your system's time.h declares | # -DHAVE_INCOMPATIBLE_CTIME_R if your system's time.h declares | ||||
# ctime_r and asctime_r incompatibly with the POSIX standard | # ctime_r and asctime_r incompatibly with the POSIX standard | ||||
# (Solaris when _POSIX_PTHREAD_SEMANTICS is not defined). | # (Solaris when _POSIX_PTHREAD_SEMANTICS is not defined). | ||||
# -DHAVE_INTTYPES_H=0 if <inttypes.h> does not work* | # -DHAVE_INTTYPES_H=0 if <inttypes.h> does not work*+ | ||||
# -DHAVE_LINK=0 if your system lacks a link function | # -DHAVE_LINK=0 if your system lacks a link function | ||||
# -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function | # -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function | ||||
# -DHAVE_LOCALTIME_RZ=0 if you do not want zdump to use localtime_rz | # -DHAVE_LOCALTIME_RZ=0 if you do not want zdump to use localtime_rz | ||||
# localtime_rz can make zdump significantly faster, but is nonstandard. | # localtime_rz can make zdump significantly faster, but is nonstandard. | ||||
# -DHAVE_MALLOC_ERRNO=0 if malloc etc. do not set errno on failure. | # -DHAVE_MALLOC_ERRNO=0 if malloc etc. do not set errno on failure. | ||||
# -DHAVE_POSIX_DECLS=0 if your system's include files do not declare | # -DHAVE_POSIX_DECLS=0 if your system's include files do not declare | ||||
# functions like 'link' or variables like 'tzname' required by POSIX | # functions like 'link' or variables like 'tzname' required by POSIX | ||||
# -DHAVE_SETENV=0 if your system lacks the setenv function | # -DHAVE_SETENV=0 if your system lacks the setenv function | ||||
# -DHAVE_SNPRINTF=0 if your system lacks the snprintf function | # -DHAVE_SNPRINTF=0 if your system lacks the snprintf function+ | ||||
# -DHAVE_STDCKDINT_H=0 if neither <stdckdint.h> nor substitutes like | # -DHAVE_STDCKDINT_H=0 if neither <stdckdint.h> nor substitutes like | ||||
# __builtin_add_overflow work* | # __builtin_add_overflow work* | ||||
# -DHAVE_STDINT_H=0 if <stdint.h> does not work* | # -DHAVE_STDINT_H=0 if <stdint.h> does not work*+ | ||||
# -DHAVE_STRFTIME_L if <time.h> declares locale_t and strftime_l | # -DHAVE_STRFTIME_L if <time.h> declares locale_t and strftime_l | ||||
# -DHAVE_STRDUP=0 if your system lacks the strdup function | # -DHAVE_STRDUP=0 if your system lacks the strdup function | ||||
# -DHAVE_STRTOLL=0 if your system lacks the strtoll function | # -DHAVE_STRTOLL=0 if your system lacks the strtoll function+ | ||||
# -DHAVE_SYMLINK=0 if your system lacks the symlink function | # -DHAVE_SYMLINK=0 if your system lacks the symlink function | ||||
# -DHAVE_SYS_STAT_H=0 if <sys/stat.h> does not work* | # -DHAVE_SYS_STAT_H=0 if <sys/stat.h> does not work* | ||||
# -DHAVE_TZSET=0 if your system lacks a tzset function | # -DHAVE_TZSET=0 if your system lacks a tzset function | ||||
# -DHAVE_UNISTD_H=0 if <unistd.h> does not work* | # -DHAVE_UNISTD_H=0 if <unistd.h> does not work* | ||||
# -DHAVE_UTMPX_H=0 if <utmpx.h> does not work* | # -DHAVE_UTMPX_H=0 if <utmpx.h> does not work* | ||||
# -Dlocale_t=XXX if your system uses XXX instead of locale_t | # -Dlocale_t=XXX if your system uses XXX instead of locale_t | ||||
# -DPORT_TO_C89 if tzcode should also run on C89 platforms+ | |||||
# -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers | # -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers | ||||
# with external linkage, e.g., applications cannot define 'localtime'. | # with external linkage, e.g., applications cannot define 'localtime'. | ||||
# -Dssize_t=long on hosts like MS-Windows that lack ssize_t | # -Dssize_t=long on hosts like MS-Windows that lack ssize_t | ||||
# -DSUPPORT_C89 if the tzcode library should support C89 callers+ | |||||
# -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has | # -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has | ||||
# security implications and is not recommended for general use | # security implications and is not recommended for general use | ||||
# -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires; | # -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires; | ||||
# not needed by the main-program tz code, which is single-threaded. | # not needed by the main-program tz code, which is single-threaded. | ||||
# Append other compiler flags as needed, e.g., -pthread on GNU/Linux. | # Append other compiler flags as needed, e.g., -pthread on GNU/Linux. | ||||
# -Dtime_tz=\"T\" to use T as the time_t type, rather than the system time_t | # -Dtime_tz=\"T\" to use T as the time_t type, rather than the system time_t | ||||
# This is intended for internal use only; it mangles external names. | # This is intended for internal use only; it mangles external names. | ||||
# -DTZ_DOMAIN=\"foo\" to use "foo" for gettext domain name; default is "tz" | # -DTZ_DOMAIN=\"foo\" to use "foo" for gettext domain name; default is "tz" | ||||
# -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory; | # -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory; | ||||
# the default is system-supplied, typically "/usr/lib/locale" | # the default is system-supplied, typically "/usr/lib/locale" | ||||
# -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified | # -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified | ||||
# DST transitions if the time zone files cannot be accessed | # DST transitions for POSIX-style TZ strings lacking them, | ||||
# in the usual case where POSIXRULES is '-'. If not specified, | |||||
# TZDEFRULESTRING defaults to US rules for future DST transitions. | |||||
# This mishandles some past timestamps, as US DST rules have changed. | |||||
# It also mishandles settings like TZ='EET-2EEST' for eastern Europe, | |||||
# as Europe and US DST rules differ. | |||||
# -DTZNAME_MAXIMUM=N to limit time zone abbreviations to N bytes (default 255) | |||||
# -DUNINIT_TRAP if reading uninitialized storage can cause problems | # -DUNINIT_TRAP if reading uninitialized storage can cause problems | ||||
# other than simply getting garbage data | # other than simply getting garbage data | ||||
# -DUSE_LTZ=0 to build zdump with the system time zone library | # -DUSE_LTZ=0 to build zdump with the system time zone library | ||||
# Also set TZDOBJS=zdump.o and CHECK_TIME_T_ALTERNATIVES= below. | # Also set TZDOBJS=zdump.o and CHECK_TIME_T_ALTERNATIVES= below. | ||||
# -DZIC_BLOAT_DEFAULT=\"fat\" to default zic's -b option to "fat", and | # -DZIC_BLOAT_DEFAULT=\"fat\" to default zic's -b option to "fat", and | ||||
# similarly for "slim". Fat TZif files work around incompatibilities | # similarly for "slim". Fat TZif files work around incompatibilities | ||||
# and bugs in some TZif readers, notably older ones that | # and bugs in some TZif readers, notably older ones that | ||||
# ignore or otherwise mishandle 64-bit data in TZif files; | # ignore or otherwise mishandle 64-bit data in TZif files; | ||||
# however, fat TZif files may trigger bugs in newer TZif readers. | # however, fat TZif files may trigger bugs in newer TZif readers. | ||||
# Slim TZif files are more efficient, and are the default. | # Slim TZif files are more efficient, and are the default. | ||||
# -DZIC_MAX_ABBR_LEN_WO_WARN=3 | # -DZIC_MAX_ABBR_LEN_WO_WARN=3 | ||||
# (or some other number) to set the maximum time zone abbreviation length | # (or some other number) to set the maximum time zone abbreviation length | ||||
# that zic will accept without a warning (the default is 6) | # that zic will accept without a warning (the default is 6) | ||||
# $(GCC_DEBUG_FLAGS) if you are using recent GCC and want lots of checking | # $(GCC_DEBUG_FLAGS) if you are using recent GCC and want lots of checking | ||||
# | # | ||||
# * Options marked "*" can be omitted if your compiler is C23 compatible. | # * Options marked "*" can be omitted if your compiler is C23 compatible. | ||||
# * Options marked "+" are obsolescent and are planned to be removed | |||||
# once the code assumes C99 or later. | |||||
# | # | ||||
# Select instrumentation via "make GCC_INSTRUMENT='whatever'". | # Select instrumentation via "make GCC_INSTRUMENT='whatever'". | ||||
GCC_INSTRUMENT = \ | GCC_INSTRUMENT = \ | ||||
-fsanitize=undefined -fsanitize-address-use-after-scope \ | -fsanitize=undefined -fsanitize-address-use-after-scope \ | ||||
-fsanitize-undefined-trap-on-error -fstack-protector | -fsanitize-undefined-trap-on-error -fstack-protector | ||||
# Omit -fanalyzer from GCC_DEBUG_FLAGS, as it makes GCC too slow. | # Omit -fanalyzer from GCC_DEBUG_FLAGS, as it makes GCC too slow. | ||||
GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ | GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ | ||||
$(GCC_INSTRUMENT) \ | $(GCC_INSTRUMENT) \ | ||||
▲ Show 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | |||||
# | # | ||||
# If you want functions that were inspired by early versions of X3J11's work, | # If you want functions that were inspired by early versions of X3J11's work, | ||||
# add | # add | ||||
# -DSTD_INSPIRED | # -DSTD_INSPIRED | ||||
# to the end of the "CFLAGS=" line. This arranges for the following | # to the end of the "CFLAGS=" line. This arranges for the following | ||||
# functions to be added to the time conversion library. | # functions to be added to the time conversion library. | ||||
# "offtime" is like "gmtime" except that it accepts a second (long) argument | # "offtime" is like "gmtime" except that it accepts a second (long) argument | ||||
# that gives an offset to add to the time_t when converting it. | # that gives an offset to add to the time_t when converting it. | ||||
# "offtime_r" is to "offtime" what "gmtime_r" is to "gmtime". | |||||
# "timelocal" is equivalent to "mktime". | # "timelocal" is equivalent to "mktime". | ||||
# "timeoff" is like "timegm" except that it accepts a second (long) argument | # "timeoff" is like "timegm" except that it accepts a second (long) argument | ||||
# that gives an offset to use when converting to a time_t. | # that gives an offset to use when converting to a time_t. | ||||
# "posix2time" and "time2posix" are described in an included manual page. | # "posix2time" and "time2posix" are described in an included manual page. | ||||
# X3J11's work does not describe any of these functions. | # X3J11's work does not describe any of these functions. | ||||
# These functions may well disappear in future releases of the time | # These functions may well disappear in future releases of the time | ||||
# conversion package. | # conversion package. | ||||
# | # | ||||
# If you don't want functions that were inspired by NetBSD, add | # If you don't want functions that were inspired by NetBSD, add | ||||
# -DNETBSD_INSPIRED=0 | # -DNETBSD_INSPIRED=0 | ||||
# to the end of the "CFLAGS=" line. Otherwise, the functions | # to the end of the "CFLAGS=" line. Otherwise, the functions | ||||
# "localtime_rz", "mktime_z", "tzalloc", and "tzfree" are added to the | # "localtime_rz", "mktime_z", "tzalloc", and "tzfree" are added to the | ||||
# time library, and if STD_INSPIRED is also defined the functions | # time library, and if STD_INSPIRED is also defined to nonzero the functions | ||||
# "posix2time_z" and "time2posix_z" are added as well. | # "posix2time_z" and "time2posix_z" are added as well. | ||||
# The functions ending in "_z" (or "_rz") are like their unsuffixed | # The functions ending in "_z" (or "_rz") are like their unsuffixed | ||||
# (or suffixed-by-"_r") counterparts, except with an extra first | # (or suffixed-by-"_r") counterparts, except with an extra first | ||||
# argument of opaque type timezone_t that specifies the timezone. | # argument of opaque type timezone_t that specifies the timezone. | ||||
# "tzalloc" allocates a timezone_t value, and "tzfree" frees it. | # "tzalloc" allocates a timezone_t value, and "tzfree" frees it. | ||||
# | # | ||||
# If you want to allocate state structures in localtime, add | # If you want to allocate state structures in localtime, add | ||||
# -DALL_STATE | # -DALL_STATE | ||||
▲ Show 20 Lines • Show All 75 Lines • ▼ Show 20 Lines | |||||
# TAB_CHAR is a single tab character, in single quotes. | # TAB_CHAR is a single tab character, in single quotes. | ||||
TAB_CHAR= ' ' | TAB_CHAR= ' ' | ||||
SAFE_CHARSET1= $(TAB_CHAR)' !\"'$$sharp'$$%&'\''()*+,./0123456789:;<=>?@' | SAFE_CHARSET1= $(TAB_CHAR)' !\"'$$sharp'$$%&'\''()*+,./0123456789:;<=>?@' | ||||
SAFE_CHARSET2= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\^_`' | SAFE_CHARSET2= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\^_`' | ||||
SAFE_CHARSET3= 'abcdefghijklmnopqrstuvwxyz{|}~' | SAFE_CHARSET3= 'abcdefghijklmnopqrstuvwxyz{|}~' | ||||
SAFE_CHARSET= $(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3) | SAFE_CHARSET= $(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3) | ||||
SAFE_CHAR= '[]'$(SAFE_CHARSET)'-]' | SAFE_CHAR= '[]'$(SAFE_CHARSET)'-]' | ||||
# These characters are Latin-1, and so are likely to be displayable | # These non-alphabetic, non-ASCII printable characters are Latin-1, | ||||
# even in editors with limited character sets. | # and so are likely displayable even in editors like XEmacs 21 | ||||
UNUSUAL_OK_LATIN_1 = «°±»½¾× | # that have limited display capabilities. | ||||
# This IPA symbol is represented in Unicode as the composition of | UNUSUAL_OK_LATIN_1 = ¡¢£¤¥¦§¨©«¬®¯°±²³´¶·¸¹»¼½¾¿×÷ | ||||
# U+0075 and U+032F, and U+032F is not considered alphabetic by some | |||||
# grep implementations that do not grok composition. | |||||
UNUSUAL_OK_IPA = u̯ | |||||
# Non-ASCII non-letters that OK_CHAR allows, as these characters are | # Non-ASCII non-letters that OK_CHAR allows, as these characters are | ||||
# useful in commentary. | # useful in commentary. | ||||
UNUSUAL_OK_CHARSET= $(UNUSUAL_OK_LATIN_1)$(UNUSUAL_OK_IPA) | UNUSUAL_OK_CHARSET= $(UNUSUAL_OK_LATIN_1) | ||||
# Put this in a bracket expression to match spaces. | # Put this in a bracket expression to match spaces. | ||||
s = [:space:] | s = [:space:] | ||||
# OK_CHAR matches any character allowed in the distributed files. | # OK_CHAR matches any character allowed in the distributed files. | ||||
# This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and | # This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and | ||||
# multibyte letters are also allowed so that commentary can contain a | # multibyte letters are also allowed so that commentary can contain a | ||||
# few safe symbols and people's names and can quote non-English sources. | # few safe symbols and people's names and can quote non-English sources. | ||||
▲ Show 20 Lines • Show All 352 Lines • ▼ Show 20 Lines | RULELESS_SLASHED_ABBRS = \ | ||||
$(PRECEDES_STDOFF)$(STDOFF)[$s]+$(RULELESS_SAVE)[$s]+[^$s]*/ | $(PRECEDES_STDOFF)$(STDOFF)[$s]+$(RULELESS_SAVE)[$s]+[^$s]*/ | ||||
check_slashed_abbrs: $(TDATA_TO_CHECK) | check_slashed_abbrs: $(TDATA_TO_CHECK) | ||||
! grep -En '$(RULELESS_SLASHED_ABBRS)' $(TDATA_TO_CHECK) | ! grep -En '$(RULELESS_SLASHED_ABBRS)' $(TDATA_TO_CHECK) | ||||
touch $@ | touch $@ | ||||
CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; } | CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; } | ||||
check_sorted: backward backzone iso3166.tab zone.tab zone1970.tab | check_sorted: backward backzone | ||||
$(AWK) '/^Link/ {printf "%.5d %s\n", g, $$3} !/./ {g++}' \ | $(AWK) '/^Link/ {printf "%.5d %s\n", g, $$3} !/./ {g++}' \ | ||||
backward | LC_ALL=C sort -cu | backward | LC_ALL=C sort -cu | ||||
$(AWK) '/^Zone/ {print $$2}' backzone | LC_ALL=C sort -cu | $(AWK) '/^Zone/ {print $$2}' backzone | LC_ALL=C sort -cu | ||||
touch $@ | touch $@ | ||||
check_back: checklinks.awk $(TDATA_TO_CHECK) | check_back: checklinks.awk $(TDATA_TO_CHECK) | ||||
$(AWK) \ | $(AWK) \ | ||||
-v DATAFORM=$(DATAFORM) \ | -v DATAFORM=$(DATAFORM) \ | ||||
▲ Show 20 Lines • Show All 406 Lines • Show Last 20 Lines |