svn commit: r302026 - in head: share/monetdef share/msgdef share/numericdef share/timedef tools/tools/locale/tools

Baptiste Daroussin bapt at FreeBSD.org
Mon Jun 20 06:45:45 UTC 2016


Author: bapt
Date: Mon Jun 20 06:45:42 2016
New Revision: 302026
URL: https://svnweb.freebsd.org/changeset/base/302026

Log:
  Fix generation of locales with multiple variants
  
  Serbian locales have triple components to represent the 2 variations of the
  locale: Latin and Cyrillic. Previously the tools generatic the locale were
  appending both definitions instead of differentiating them.
  
  Reported by:	ache
  Approved by:	re (gjb)

Added:
  head/share/msgdef/sr_Cyrl_RS.UTF-8.src   (contents, props changed)
  head/share/timedef/sr_Cyrl_RS.UTF-8.src   (contents, props changed)
Deleted:
  head/share/msgdef/bg_BG.UTF-8.src
  head/share/msgdef/sl_SI.UTF-8.src
  head/share/msgdef/sr_Latn_RS.ISO8859-2.src
  head/share/numericdef/sr_Latn_RS.UTF-8.src
  head/share/timedef/en_HK.UTF-8.src
Modified:
  head/share/monetdef/sr_Latn_RS.UTF-8.src
  head/share/msgdef/Makefile
  head/share/msgdef/sr_Cyrl_RS.ISO8859-5.src
  head/share/msgdef/sr_Latn_RS.UTF-8.src
  head/share/numericdef/Makefile
  head/share/timedef/Makefile
  head/share/timedef/sr_Cyrl_RS.ISO8859-5.src
  head/share/timedef/sr_Latn_RS.ISO8859-2.src   (contents, props changed)
  head/share/timedef/sr_Latn_RS.UTF-8.src   (contents, props changed)
  head/tools/tools/locale/tools/cldr2def.pl

Modified: head/share/monetdef/sr_Latn_RS.UTF-8.src
==============================================================================
--- head/share/monetdef/sr_Latn_RS.UTF-8.src	Mon Jun 20 06:40:58 2016	(r302025)
+++ head/share/monetdef/sr_Latn_RS.UTF-8.src	Mon Jun 20 06:45:42 2016	(r302026)
@@ -4,47 +4,47 @@
 # -----------------------------------------------------------------------------
 #
 # int_curr_symbol (last character always SPACE)
-RSD ""RSD 
+RSD 
 #
 # currency_symbol
-RSD""RSD
+RSD
 #
 # mon_decimal_point
-,"",
+,
 #
 # mon_thousands_sep
-."".
+.
 #
 # mon_grouping
-33
+3
 #
 # positive_sign
-""
+
 #
 # negative_sign
--""-
+-
 #
 # int_frac_digits
-00
+0
 #
 # frac_digits
-00
+0
 #
 # p_cs_precedes
-00
+0
 #
 # p_sep_by_space
-11
+1
 #
 # n_cs_precedes
-00
+0
 #
 # n_sep_by_space
-11
+1
 #
 # p_sign_posn
-11
+1
 #
 # n_sign_posn
-11
+1
 # EOF

Modified: head/share/msgdef/Makefile
==============================================================================
--- head/share/msgdef/Makefile	Mon Jun 20 06:40:58 2016	(r302025)
+++ head/share/msgdef/Makefile	Mon Jun 20 06:45:42 2016	(r302026)
@@ -16,7 +16,6 @@ LOCALES+=	be_BY.CP1251
 LOCALES+=	be_BY.ISO8859-5
 LOCALES+=	be_BY.UTF-8
 LOCALES+=	bg_BG.CP1251
-LOCALES+=	bg_BG.UTF-8
 LOCALES+=	cs_CZ.UTF-8
 LOCALES+=	de_DE.UTF-8
 LOCALES+=	el_GR.ISO8859-7
@@ -64,9 +63,8 @@ LOCALES+=	ru_RU.UTF-8
 LOCALES+=	se_NO.UTF-8
 LOCALES+=	sk_SK.ISO8859-2
 LOCALES+=	sk_SK.UTF-8
-LOCALES+=	sl_SI.UTF-8
 LOCALES+=	sr_Cyrl_RS.ISO8859-5
-LOCALES+=	sr_Latn_RS.ISO8859-2
+LOCALES+=	sr_Cyrl_RS.UTF-8
 LOCALES+=	sr_Latn_RS.UTF-8
 LOCALES+=	sv_SE.UTF-8
 LOCALES+=	tr_TR.ISO8859-9
@@ -97,6 +95,7 @@ SAME+=		ar_SA.UTF-8 ar_MA.UTF-8
 SAME+=		ar_SA.UTF-8 ar_JO.UTF-8
 SAME+=		ar_SA.UTF-8 ar_EG.UTF-8
 SAME+=		ar_SA.UTF-8 ar_AE.UTF-8
+SAME+=		sr_Cyrl_RS.UTF-8 bg_BG.UTF-8
 SAME+=		es_MX.ISO8859-1 es_ES.ISO8859-15
 SAME+=		es_MX.ISO8859-1 es_ES.ISO8859-1
 SAME+=		es_MX.ISO8859-1 es_AR.ISO8859-1
@@ -179,9 +178,11 @@ SAME+=		fr_FR.UTF-8 fr_CA.ISO8859-1
 SAME+=		fr_FR.UTF-8 fr_BE.UTF-8
 SAME+=		fr_FR.UTF-8 fr_BE.ISO8859-15
 SAME+=		fr_FR.UTF-8 fr_BE.ISO8859-1
-SAME+=		sl_SI.UTF-8 sl_SI.ISO8859-2
-SAME+=		sl_SI.UTF-8 hr_HR.UTF-8
-SAME+=		sl_SI.UTF-8 hr_HR.ISO8859-2
+SAME+=		sr_Latn_RS.UTF-8 sr_Latn_RS.ISO8859-2
+SAME+=		sr_Latn_RS.UTF-8 sl_SI.UTF-8
+SAME+=		sr_Latn_RS.UTF-8 sl_SI.ISO8859-2
+SAME+=		sr_Latn_RS.UTF-8 hr_HR.UTF-8
+SAME+=		sr_Latn_RS.UTF-8 hr_HR.ISO8859-2
 SAME+=		hu_HU.UTF-8 hu_HU.ISO8859-2
 SAME+=		is_IS.ISO8859-15 is_IS.ISO8859-1
 SAME+=		it_IT.ISO8859-15 it_IT.ISO8859-1
@@ -199,7 +200,6 @@ SAME+=		pt_PT.ISO8859-15 pt_BR.ISO8859-1
 SAME+=		pt_PT.UTF-8 pt_BR.UTF-8
 SAME+=		ro_RO.UTF-8 ro_RO.ISO8859-2
 SAME+=		se_NO.UTF-8 se_FI.UTF-8
-SAME+=		sr_Latn_RS.UTF-8 sr_Cyrl_RS.UTF-8
 SAME+=		zh_Hans_CN.GBK zh_Hans_CN.GB18030
 SAME+=		zh_Hans_CN.GBK zh_Hans_CN.eucCN
 SAME+=		ko_KR.eucKR ko_KR.CP949	# legacy (same charset)

Modified: head/share/msgdef/sr_Cyrl_RS.ISO8859-5.src
==============================================================================
--- head/share/msgdef/sr_Cyrl_RS.ISO8859-5.src	Mon Jun 20 06:40:58 2016	(r302025)
+++ head/share/msgdef/sr_Cyrl_RS.ISO8859-5.src	Mon Jun 20 06:45:42 2016	(r302026)
@@ -4,14 +4,14 @@
 # -----------------------------------------------------------------------------
 #
 # yesexpr
-^(([Դ]([а])?)|([Դ])|([yY]([eE][sS])?)|([yY]))""^(([dD]([aA])?)|([dD])|([yY]([eE][sS])?)|([yY]))
+^(([Դ]([а])?)|([Դ])|([yY]([eE][sS])?)|([yY]))
 #
 # noexpr
-^(([ݽ]([յ])?)|([ݽ])|([nN]([oO])?)|([nN]))""^(([nN]([eE])?)|([nN])|([nN]([oO])?)|([nN]))
+^(([ݽ]([յ])?)|([ݽ])|([nN]([oO])?)|([nN]))
 #
 # yesstr
-ÔÐ:Ô:´°:´:yes:y:YES:Y""da:d:DA:D:yes:y:YES:Y
+ÔÐ:Ô:´°:´:yes:y:YES:Y
 #
 # nostr
-ÝÕ:Ý:½µ:½:no:n:NO:N""ne:n:NE:N:no:n:NO:N
+ÝÕ:Ý:½µ:½:no:n:NO:N
 # EOF

Added: head/share/msgdef/sr_Cyrl_RS.UTF-8.src
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/msgdef/sr_Cyrl_RS.UTF-8.src	Mon Jun 20 06:45:42 2016	(r302026)
@@ -0,0 +1,17 @@
+# Warning: Do not edit. This file is automatically generated from the
+# tools in /usr/src/tools/tools/locale. The data is obtained from the
+# CLDR project, obtained from http://cldr.unicode.org/
+# -----------------------------------------------------------------------------
+#
+# yesexpr
+^(([дД]([аА])?)|([дД])|([yY]([eE][sS])?)|([yY]))
+#
+# noexpr
+^(([нН]([еЕ])?)|([нН])|([nN]([oO])?)|([nN]))
+#
+# yesstr
+да:д:ДА:Д:yes:y:YES:Y
+#
+# nostr
+не:н:НЕ:Н:no:n:NO:N
+# EOF

Modified: head/share/msgdef/sr_Latn_RS.UTF-8.src
==============================================================================
--- head/share/msgdef/sr_Latn_RS.UTF-8.src	Mon Jun 20 06:40:58 2016	(r302025)
+++ head/share/msgdef/sr_Latn_RS.UTF-8.src	Mon Jun 20 06:45:42 2016	(r302026)
@@ -4,14 +4,14 @@
 # -----------------------------------------------------------------------------
 #
 # yesexpr
-^(([дД]([аА])?)|([дД])|([yY]([eE][sS])?)|([yY]))""^(([dD]([aA])?)|([dD])|([yY]([eE][sS])?)|([yY]))
+^(([dD]([aA])?)|([dD])|([yY]([eE][sS])?)|([yY]))
 #
 # noexpr
-^(([нН]([еЕ])?)|([нН])|([nN]([oO])?)|([nN]))""^(([nN]([eE])?)|([nN])|([nN]([oO])?)|([nN]))
+^(([nN]([eE])?)|([nN])|([nN]([oO])?)|([nN]))
 #
 # yesstr
-да:д:ДА:Д:yes:y:YES:Y""da:d:DA:D:yes:y:YES:Y
+da:d:DA:D:yes:y:YES:Y
 #
 # nostr
-не:н:НЕ:Н:no:n:NO:N""ne:n:NE:N:no:n:NO:N
+ne:n:NE:N:no:n:NO:N
 # EOF

Modified: head/share/numericdef/Makefile
==============================================================================
--- head/share/numericdef/Makefile	Mon Jun 20 06:40:58 2016	(r302025)
+++ head/share/numericdef/Makefile	Mon Jun 20 06:45:42 2016	(r302026)
@@ -18,7 +18,6 @@ LOCALES+=	hi_IN.UTF-8
 LOCALES+=	hy_AM.UTF-8
 LOCALES+=	it_CH.UTF-8
 LOCALES+=	ru_RU.CP866
-LOCALES+=	sr_Latn_RS.UTF-8
 LOCALES+=	tr_TR.UTF-8
 LOCALES+=	uk_UA.ISO8859-5
 LOCALES+=	uk_UA.KOI8-U
@@ -133,6 +132,10 @@ SAME+=		ar_SA.UTF-8 ar_JO.UTF-8
 SAME+=		ar_SA.UTF-8 ar_EG.UTF-8
 SAME+=		ar_SA.UTF-8 ar_AE.UTF-8
 SAME+=		tr_TR.UTF-8 tr_TR.ISO8859-9
+SAME+=		tr_TR.UTF-8 sr_Latn_RS.UTF-8
+SAME+=		tr_TR.UTF-8 sr_Latn_RS.ISO8859-2
+SAME+=		tr_TR.UTF-8 sr_Cyrl_RS.UTF-8
+SAME+=		tr_TR.UTF-8 sr_Cyrl_RS.ISO8859-5
 SAME+=		tr_TR.UTF-8 sl_SI.UTF-8
 SAME+=		tr_TR.UTF-8 sl_SI.ISO8859-2
 SAME+=		tr_TR.UTF-8 ro_RO.UTF-8
@@ -199,9 +202,6 @@ SAME+=		fr_CH.ISO8859-15 fr_CH.ISO8859-1
 SAME+=		hi_IN.UTF-8 hi_IN.ISCII-DEV
 SAME+=		hy_AM.UTF-8 hy_AM.ARMSCII-8
 SAME+=		uk_UA.KOI8-U ru_RU.KOI8-R
-SAME+=		sr_Latn_RS.UTF-8 sr_Latn_RS.ISO8859-2
-SAME+=		sr_Latn_RS.UTF-8 sr_Cyrl_RS.UTF-8
-SAME+=		sr_Latn_RS.UTF-8 sr_Cyrl_RS.ISO8859-5
 SAME+=		ko_KR.eucKR ko_KR.CP949	# legacy (same charset)
 
 FILES=		${LOCALES:S/$/.out/}

Modified: head/share/timedef/Makefile
==============================================================================
--- head/share/timedef/Makefile	Mon Jun 20 06:40:58 2016	(r302025)
+++ head/share/timedef/Makefile	Mon Jun 20 06:45:42 2016	(r302026)
@@ -34,7 +34,6 @@ LOCALES+=	el_GR.ISO8859-7
 LOCALES+=	el_GR.UTF-8
 LOCALES+=	en_CA.UTF-8
 LOCALES+=	en_GB.UTF-8
-LOCALES+=	en_HK.UTF-8
 LOCALES+=	en_IE.UTF-8
 LOCALES+=	en_PH.UTF-8
 LOCALES+=	en_SG.UTF-8
@@ -111,6 +110,7 @@ LOCALES+=	sk_SK.UTF-8
 LOCALES+=	sl_SI.ISO8859-2
 LOCALES+=	sl_SI.UTF-8
 LOCALES+=	sr_Cyrl_RS.ISO8859-5
+LOCALES+=	sr_Cyrl_RS.UTF-8
 LOCALES+=	sr_Latn_RS.ISO8859-2
 LOCALES+=	sr_Latn_RS.UTF-8
 LOCALES+=	sv_FI.ISO8859-15
@@ -154,11 +154,12 @@ SAME+=		de_DE.ISO8859-15 de_DE.ISO8859-1
 SAME+=		de_DE.ISO8859-15 de_CH.ISO8859-15
 SAME+=		de_DE.ISO8859-15 de_CH.ISO8859-1
 SAME+=		de_DE.UTF-8 de_CH.UTF-8
-SAME+=		en_HK.UTF-8 en_HK.ISO8859-1
-SAME+=		en_HK.UTF-8 en_AU.UTF-8
-SAME+=		en_HK.UTF-8 en_AU.US-ASCII
-SAME+=		en_HK.UTF-8 en_AU.ISO8859-15
-SAME+=		en_HK.UTF-8 en_AU.ISO8859-1
+SAME+=		en_PH.UTF-8 en_HK.UTF-8
+SAME+=		en_PH.UTF-8 en_HK.ISO8859-1
+SAME+=		en_PH.UTF-8 en_AU.UTF-8
+SAME+=		en_PH.UTF-8 en_AU.US-ASCII
+SAME+=		en_PH.UTF-8 en_AU.ISO8859-15
+SAME+=		en_PH.UTF-8 en_AU.ISO8859-1
 SAME+=		en_CA.UTF-8 en_CA.US-ASCII
 SAME+=		en_CA.UTF-8 en_CA.ISO8859-15
 SAME+=		en_CA.UTF-8 en_CA.ISO8859-1
@@ -198,7 +199,6 @@ SAME+=		nl_NL.UTF-8 nl_NL.ISO8859-15
 SAME+=		nl_NL.UTF-8 nl_NL.ISO8859-1
 SAME+=		nn_NO.ISO8859-15 nn_NO.ISO8859-1
 SAME+=		pt_PT.ISO8859-15 pt_PT.ISO8859-1
-SAME+=		sr_Latn_RS.UTF-8 sr_Cyrl_RS.UTF-8
 SAME+=		sv_FI.ISO8859-15 sv_FI.ISO8859-1
 SAME+=		sv_SE.ISO8859-15 sv_SE.ISO8859-1
 SAME+=		zh_Hans_CN.GBK zh_Hans_CN.GB18030

Modified: head/share/timedef/sr_Cyrl_RS.ISO8859-5.src
==============================================================================
--- head/share/timedef/sr_Cyrl_RS.ISO8859-5.src	Mon Jun 20 06:40:58 2016	(r302025)
+++ head/share/timedef/sr_Cyrl_RS.ISO8859-5.src	Mon Jun 20 06:45:42 2016	(r302026)
@@ -15,18 +15,7 @@
 áÕß
 ÞÚâ
 ÝÞÒ
-ÔÕæ""jan
-feb
-mar
-apr
-maj
-jun
-jul
-avg
-sep
-okt
-nov
-dec
+ÔÕæ
 #
 # Long month names (as in a date)
 øÐÝãÐà
@@ -40,18 +29,7 @@ dec
 áÕßâÕÜÑÐà
 ÞÚâÞÑÐà
 ÝÞÒÕÜÑÐà
-ÔÕæÕÜÑÐà""januar
-februar
-mart
-april
-maj
-jun
-jul
-avgust
-septembar
-oktobar
-novembar
-decembar
+ÔÕæÕÜÑÐà
 #
 # Short weekday names
 ÝÕÔ
@@ -60,13 +38,7 @@ decembar
 áàÕ
 çÕâ
 ßÕâ
-áãÑ""ned
-pon
-uto
-sre
-cet
-pet
-sub
+áãÑ
 #
 # Long weekday names
 ÝÕÔÕùÐ
@@ -75,30 +47,23 @@ sub
 áàÕÔÐ
 çÕâÒàâÐÚ
 ßÕâÐÚ
-áãÑÞâÐ""nedelja
-ponedeljak
-utorak
-sreda
-cetvrtak
-petak
-subota
+áãÑÞâÐ
 #
 # X_fmt
-%H.%M.%S""%H.%M.%S
+%H.%M.%S
 #
 # x_fmt
-%d.%m.%y.""%e.%m.%y.
+%d.%m.%y.
 #
 # c_fmt
-%d. %B %Y. %H.%M.%S""%d. %B %Y. %H.%M.%S %Z
+%d. %B %Y. %H.%M.%S
 #
 # AM/PM
 ßàÕ ßÞÔÝÕ
-ßÞ ßÞÔÝÕ""pre podne
-po podne
+ßÞ ßÞÔÝÕ
 #
 # date_fmt
-%d. %B %Y. %H.%M.%S %Z""%d. %B %Y. %H.%M.%S %Z
+%d. %B %Y. %H.%M.%S %Z
 #
 # Long month names (without case ending)
 øÐÝãÐà
@@ -112,22 +77,11 @@ po podne
 áÕßâÕÜÑÐà
 ÞÚâÞÑÐà
 ÝÞÒÕÜÑÐà
-ÔÕæÕÜÑÐà""januar
-februar
-mart
-april
-maj
-jun
-jul
-avgust
-septembar
-oktobar
-novembar
-decembar
+ÔÕæÕÜÑÐà
 #
 # md_order
-dmdm
+dm
 #
 # ampm_fmt
-%I.%M.%S %p""%I.%M.%S %p
+%I.%M.%S %p
 # EOF

Added: head/share/timedef/sr_Cyrl_RS.UTF-8.src
==============================================================================
Binary file. No diff available.

Modified: head/share/timedef/sr_Latn_RS.ISO8859-2.src
==============================================================================
--- head/share/timedef/sr_Latn_RS.ISO8859-2.src	Mon Jun 20 06:40:58 2016	(r302025)
+++ head/share/timedef/sr_Latn_RS.ISO8859-2.src	Mon Jun 20 06:45:42 2016	(r302026)
@@ -4,18 +4,7 @@
 # -----------------------------------------------------------------------------
 #
 # Short month names
-jah
-feb
-mar
-apr
-maj
-juh
-jul
-abg
-cep
-okt
-hob
-dec""jan
+jan
 feb
 mar
 apr
@@ -29,18 +18,7 @@ nov
 dec
 #
 # Long month names (as in a date)
-jahuar
-februar
-mart
-aprjl
-maj
-juh
-jul
-abguct
-ceptembar
-oktobar
-hobembar
-decembar""januar
+januar
 februar
 mart
 april
@@ -54,13 +32,7 @@ novembar
 decembar
 #
 # Short weekday names
-hed
-poh
-uto
-cre
-èet
-pet
-cub""ned
+ned
 pon
 uto
 sre
@@ -69,13 +41,7 @@ pet
 sub
 #
 # Long weekday names
-hedelja
-pohedeljak
-utorak
-creda
-èetbrtak
-petak
-cubota""nedelja
+nedelja
 ponedeljak
 utorak
 sreda
@@ -84,35 +50,23 @@ petak
 subota
 #
 # X_fmt
-%H.%M.%S""%H.%M.%S
+%H.%M.%S
 #
 # x_fmt
-%d.%m.%y.""%d.%m.%y.
+%d.%m.%y.
 #
 # c_fmt
-%d. %B %Y. %H.%M.%S""%d. %B %Y. %H.%M.%S %Z
+%d. %B %Y. %H.%M.%S
 #
 # AM/PM
-pre podhe
-po podhe""pre podne
+pre podne
 po podne
 #
 # date_fmt
-%d. %B %Y. %H.%M.%S %Z""%d. %B %Y. %H.%M.%S %Z
+%d. %B %Y. %H.%M.%S %Z
 #
 # Long month names (without case ending)
-jahuar
-februar
-mart
-aprjl
-maj
-juh
-jul
-abguct
-ceptembar
-oktobar
-hobembar
-decembar""januar
+januar
 februar
 mart
 april
@@ -126,8 +80,8 @@ novembar
 decembar
 #
 # md_order
-dmdm
+dm
 #
 # ampm_fmt
-%I.%M.%S %p""%I.%M.%S %p
+%I.%M.%S %p
 # EOF

Modified: head/share/timedef/sr_Latn_RS.UTF-8.src
==============================================================================
Binary file (source and/or target). No diff available.

Modified: head/tools/tools/locale/tools/cldr2def.pl
==============================================================================
--- head/tools/tools/locale/tools/cldr2def.pl	Mon Jun 20 06:40:58 2016	(r302025)
+++ head/tools/tools/locale/tools/cldr2def.pl	Mon Jun 20 06:45:42 2016	(r302026)
@@ -595,8 +595,8 @@ sub get_fields {
 					$line =~ s/^$k\s+//;
 				}
 
-				$values{$l}{$c}{$k} = ""
-					if (!defined $values{$l}{$c}{$k});
+				$values{$l}{$f}{$c}{$k} = ""
+					if (!defined $values{$l}{$f}{$c}{$k});
 
 				$continue = ($line =~ /\/$/);
 				$line =~ s/\/$// if ($continue);
@@ -606,7 +606,7 @@ sub get_fields {
 					    s/\<([^>_]+)_([^>]+)\>/<$1 $2>/;
 				}
 				die "_ in data - $line" if ($line =~ /_/);
-				$values{$l}{$c}{$k} .= $line;
+				$values{$l}{$f}{$c}{$k} .= $line;
 
 				last if (!$continue);
 			}
@@ -723,7 +723,7 @@ sub print_fields {
 # -----------------------------------------------------------------------------
 EOF
 			foreach my $k (keys(%keys)) {
-				my $f = $keys{$k};
+				my $g = $keys{$k};
 
 				die("Unknown $k in \%DESC")
 					if (!defined $DESC{$k});
@@ -731,37 +731,38 @@ EOF
 				$output .= "#\n# $DESC{$k}\n";
 
 				# Replace one row with another
-				if ($f =~ /^>/) {
-					$k = substr($f, 1);
-					$f = $keys{$k};
+				if ($g =~ /^>/) {
+					$k = substr($g, 1);
+					$g = $keys{$k};
 				}
 
 				# Callback function
-				if ($f =~ /^\</) {
+				if ($g =~ /^\</) {
 					$callback{data}{c} = $c;
 					$callback{data}{k} = $k;
+					$callback{data}{f} = $f;
 					$callback{data}{l} = $l;
 					$callback{data}{e} = $enc;
-					my @a = split(/\</, substr($f, 1));
+					my @a = split(/\</, substr($g, 1));
 					my $rv =
-					    &{$callback{$a[0]}}($values{$l}{$c}{$a[1]});
-					$values{$l}{$c}{$k} = $rv;
-					$f = $a[2];
+					    &{$callback{$a[0]}}($values{$l}{$f}{$c}{$a[1]});
+					$values{$l}{$f}{$c}{$k} = $rv;
+					$g = $a[2];
 					$callback{data} = ();
 				}
 
-				my $v = $values{$l}{$c}{$k};
+				my $v = $values{$l}{$f}{$c}{$k};
 				$v = "undef" if (!defined $v);
 
-				if ($f eq "i") {
+				if ($g eq "i") {
 					$output .= "$v\n";
 					next;
 				}
-				if ($f eq "ai") {
+				if ($g eq "ai") {
 					$output .= "$v\n";
 					next;
 				}
-				if ($f eq "s") {
+				if ($g eq "s") {
 					$v =~ s/^"//;
 					$v =~ s/"$//;
 					my $cm = "";
@@ -785,7 +786,7 @@ EOF
 					$output .= "$v\n";
 					next;
 				}
-				if ($f eq "as") {
+				if ($g eq "as") {
 					foreach my $v (split(/;/, $v)) {
 						$v =~ s/^"//;
 						$v =~ s/"$//;
@@ -815,7 +816,7 @@ EOF
 					next;
 				}
 
-				die("$k is '$f'");
+				die("$k is '$g'");
 
 			}
 


More information about the svn-src-all mailing list