Description: When convertiong a date literal, such as #25-12-1995#, CInt() function throws an exception. This applies to Basic and VBA modes Steps to Reproduce: 1. Run the sample codes from the attached document Actual Results: Basic Error # is raised Expected Results: Date literals should be converted/truncated to Integers without problem. Reproducible: Always User Profile Reset: No Additional Info: Exception is circumvented when removing the trailing dash '#' in date literals.
Hi Alain, I think you forgot to attach a sample document 😊
Ignore above comments and consider the following Basic routine: Sub Date2Integer() Const DAY_ONE = #1899-12-30# ' = 1 MAX_DATE = DateAdd("d", DAY_ONE, 2^15-2) ' #1989-09-16# Print CInt(#1989-09-16) , CInt(#09/16/1989) , MAX_DATE ' 1964 , 0 , #1989-09-16# Print CInt(#1989-09-16#), CInt(#09/16/1989#) ' 32767 , 32767 Print CLng(#1989-09-16) , CLng(#09/16/1989) , MAX_DATE ' 1964 , 0 , #1989-09-16# End Sub - Erroneous date literals should raise Error #5 at runtime OR BETTER - Be trapped at compile time When provided with valid date literals CInt() returns a valid 1-32667 number, otherwise raises an overflow when dates are above MAX_DATE. Note: DateAdd() intercepts such invalid date syntax with Error #5
I get a warning dialog with 1964 0 15.09.1989 Setting to NEW. Arch Linux 64-bit Version: 7.5.0.0.alpha1+ (X86_64) / LibreOffice Community Build ID: 705b2924a14841883b4a8cac549f7af326d7a185 CPU threads: 8; OS: Linux 6.0; UI render: default; VCL: kf5 (cairo+xcb) Locale: fi-FI (fi_FI.UTF-8); UI: en-US Calc: threaded Jumbo Built on 8 December 2022
Dear Alain Romedenne, To make sure we're focusing on the bugs that affect our users today, LibreOffice QA is asking bug reporters and confirmers to retest open, confirmed bugs which have not been touched for over a year. There have been thousands of bug fixes and commits since anyone checked on this bug report. During that time, it's possible that the bug has been fixed, or the details of the problem have changed. We'd really appreciate your help in getting confirmation that the bug is still present. If you have time, please do the following: Test to see if the bug is still present with the latest version of LibreOffice from https://www.libreoffice.org/download/ If the bug is present, please leave a comment that includes the information from Help - About LibreOffice. If the bug is NOT present, please set the bug's Status field to RESOLVED-WORKSFORME and leave a comment that includes the information from Help - About LibreOffice. Please DO NOT Update the version field Reply via email (please reply directly on the bug tracker) Set the bug's Status field to RESOLVED - FIXED (this status has a particular meaning that is not appropriate in this case) If you want to do more to help you can test to see if your issue is a REGRESSION. To do so: 1. Download and install oldest version of LibreOffice (usually 3.3 unless your bug pertains to a feature added after 3.3) from https://downloadarchive.documentfoundation.org/libreoffice/old/ 2. Test your bug 3. Leave a comment with your results. 4a. If the bug was present with 3.3 - set version to 'inherited from OOo'; 4b. If the bug was not present in 3.3 - add 'regression' to keyword Feel free to come ask questions or to say hello in our QA chat: https://web.libera.chat/?settings=#libreoffice-qa Thank you for helping us make LibreOffice even better for everyone! Warm Regards, QA Team MassPing-UntouchedBug
Problem is still valid Version: 25.8.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: fa357e4a0a44471637373302c4391e6b0c2f1a20 CPU threads: 4; OS: Linux 6.1; UI render: default; VCL: gtk3 Locale: fr-FR (fr_FR.UTF-8); UI: en-US Calc: threaded
Code pointer: SbiScanner::NextSym sets `bHash = true`, when it finds a starting hash, but not ending; it is expected that such a hash represents a file number (Open/Write/Seek and friends; it is checked in SbiParser::Channel); or as an odd "feature" - a comment (see the code below `PrevLineCommentLbl`, which assigns "REM" to aSym). To fix this bug, we need to make sure in this method, that *either* the # is really treated as comment (and then it masks the rest of the line; the code like `CInt(#09/16/1989)` would become invalid in that case, and produce an error); or # appears in a context that allows / expects such a character. My idea would be to introduce a field in parser, which would allow (or disallow by default) channel (and its #). It would be set in SbiParser::Write / SbiParser::Open / whatever; and would be checked in SbiScanner::NextSym. When channel was disallowed, and # appeared and wasn't handled as a different entity, it would set an error. A small issue is that we will need additionally to handle statements that allow channel numbers, that we don't handle specially in parser: e.g., Seek. We would need to introduce respective methods, or otherwise make sure, that when these appear, we set the field / allow #.