This line in C4::Letters, sub parseletter: $val =~ s/\p{P}(?=$)//g if $val; makes a callnumber like 535 G 48 (18) appear as 535 G 48 (18 on notices. The right parenthesis at the end is being recogized as general punctuation. Does anyone know why we should remove "punctuation" from fields such as the above? I would like to remove this line. Is there a valid reason not to do so?
*** Bug 9079 has been marked as a duplicate of this bug. ***
I have run into this in the past and reported it asbug 9079. I am really not sure what that line is supposed to do - I can only guess it might have something to do with stripping ISBD punctuation off fields?
Created attachment 16959 [details] [review] Bug 9886: ParseLetter removes too often punctuation characters from fields This patch makes ParseLetter somewhat more restrictive in removing punctuation characters from the end of a table field. Based on the assumption that we want to remove punctuation from fields in biblio and biblioitems (like ISBD). ParseLetter should not remove e.g. a parenthesis in itemcallnumber, but still removes e.g. a colon (:) at the end of a title. Removed an unneeded global and lookahead from the regex. Test plan: 1) Add a colon (:) to the end of a title. 2) Add a colon to the end of item copynumber. 3) Place a hold on that item. Check it in. Confirm hold. 4) Check the email or print notice generated. There should be no colon at the end of the title, but the colon in the copynumber should still be there.
Created attachment 17406 [details] [review] Bug 9886: ParseLetter removes too often punctuation characters from fields This patch makes ParseLetter somewhat more restrictive in removing punctuation characters from the end of a table field. Based on the assumption that we want to remove punctuation from fields in biblio and biblioitems (like ISBD). ParseLetter should not remove e.g. a parenthesis in itemcallnumber, but still removes e.g. a colon (:) at the end of a title. Removed an unneeded global and lookahead from the regex. Test plan: 1) Add a colon (:) to the end of a title. 2) Add a colon to the end of item copynumber. 3) Place a hold on that item. Check it in. Confirm hold. 4) Check the email or print notice generated. There should be no colon at the end of the title, but the colon in the copynumber should still be there. Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Started testing this - hopefully finishing later today. :)
Created attachment 17572 [details] [review] [PASSED QA] Bug 9886: ParseLetter removes too often punctuation characters from fields This patch makes ParseLetter somewhat more restrictive in removing punctuation characters from the end of a table field. Based on the assumption that we want to remove punctuation from fields in biblio and biblioitems (like ISBD). ParseLetter should not remove e.g. a parenthesis in itemcallnumber, but still removes e.g. a colon (:) at the end of a title. Removed an unneeded global and lookahead from the regex. Test plan: 1) Add a colon (:) to the end of a title. 2) Add a colon to the end of item copynumber. 3) Place a hold on that item. Check it in. Confirm hold. 4) Check the email or print notice generated. There should be no colon at the end of the title, but the colon in the copynumber should still be there. Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> I compared checkout notices with lots of different fields before and after applying the patch. For example the ) at the end of a field in branches is now longer removed. Other fields looked ok before and after. Passes all tests and QA script.
This patch has been pushed to master and 3.12.x.