From 4dfc4002eabbfcbfaa09cbbb06ddcab9e8660322 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Fri, 15 Feb 2008 11:45:13 +0000 Subject: [PATCH] Fix for bug #44403 - Have mid use the third argument properly, and test git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@628027 13f79535-47bb-0310-9956-ffa450edef68 --- src/documentation/content/xdocs/changes.xml | 1 + src/documentation/content/xdocs/status.xml | 1 + .../hssf/record/formula/functions/Mid.java | 2 +- .../poi/hssf/data/FormulaEvalTestData.xls | Bin 134656 -> 141312 bytes 4 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/documentation/content/xdocs/changes.xml b/src/documentation/content/xdocs/changes.xml index 26de01f977..d8bbb40a19 100644 --- a/src/documentation/content/xdocs/changes.xml +++ b/src/documentation/content/xdocs/changes.xml @@ -36,6 +36,7 @@ + 44403 - Fix for Mid function handling its arguments wrong 44364 - Support for Match, NA and SumProduct functions, as well as initial function error support 44375 - Cope with a broken dictionary in Document Summary Information stream. RuntimeExceptions that occured when trying to read bogus data are now caught. Dictionary entries up to but not including the bogus one are preserved, the rest is ignored. 38641 - Handle timezones better with cell.setCellValue(Calendar), so now 20:00-03:00, 20:00+00:00 and 20:00+03:00 will all be recorded as 20:00, and not 17:00 / 20:00 / 23:00 (pass a Date not a Calendar for old behaviour) diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index 2407b58fef..73e2f6852f 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -33,6 +33,7 @@ + 44403 - Fix for Mid function handling its arguments wrong 44364 - Support for Match, NA and SumProduct functions, as well as initial function error support 44375 - Cope with a broken dictionary in Document Summary Information stream. RuntimeExceptions that occured when trying to read bogus data are now caught. Dictionary entries up to but not including the bogus one are preserved, the rest is ignored. 38641 - Handle timezones better with cell.setCellValue(Calendar), so now 20:00-03:00, 20:00+00:00 and 20:00+03:00 will all be recorded as 20:00, and not 17:00 / 20:00 / 23:00 (pass a Date not a Calendar for old behaviour) diff --git a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mid.java b/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mid.java index d6c4399ae3..1917355430 100644 --- a/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mid.java +++ b/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Mid.java @@ -90,7 +90,7 @@ public class Mid extends TextFunction { } else if (startNum + numChars > str.length()) { retval = new StringEval(str.substring(startNum - 1)); } else { - retval = new StringEval(str.substring(startNum - 1, numChars)); + retval = new StringEval(str.substring(startNum - 1, (numChars + startNum - 1))); } } return retval; diff --git a/src/testcases/org/apache/poi/hssf/data/FormulaEvalTestData.xls b/src/testcases/org/apache/poi/hssf/data/FormulaEvalTestData.xls index 001432f0aaa78d228526d4cb9086e10e8baeb1ec..97766d6aaa13fb4633854f7b88bdb43c850a7427 100644 GIT binary patch delta 22458 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 delta 22183 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 B!wdib -- 2.39.5