A NOTE has been added to this issue. 
====================================================================== 
https://www.austingroupbugs.net/view.php?id=1959 
====================================================================== 
Reported By:                collinfunk
Assigned To:                
====================================================================== 
Project:                    1003.1(2024)/Issue8
Issue ID:                   1959
Category:                   Shell and Utilities
Tags:                       tc1-2024
Type:                       Clarification Requested
Severity:                   Editorial
Priority:                   normal
Status:                     Interpretation Required
Name:                        
Organization:               GNU 
User Reference:              
Section:                    XCU dd 
Page Number:                2778 
Line Number:                91990 - 91996 
Interp Status:              Proposed 
Final Accepted Text:       
https://www.austingroupbugs.net/view.php?id=1959#c7335 
Resolution:                 Accepted As Marked
Fixed in Version:           
====================================================================== 
Date Submitted:             2025-11-13 23:13 UTC
Last Modified:              2025-12-16 15:11 UTC
====================================================================== 
Summary:                    dd conv=lcase and conv=ucase should only translate
single byte locales
====================================================================== 

---------------------------------------------------------------------- 
 (0007344) geoffclare (manager) - 2025-12-16 15:11
 https://www.austingroupbugs.net/view.php?id=1959#c7344 
---------------------------------------------------------------------- 
> That conv=ascii is meant to be a "EBCDIC" to "ASCII", but with tables that
cover values 0 to 255 even though ASCII only has characters for bytes 0 to 127.

Good catch. We just assumed the output is ASCII so using tr (with current
LC_CTYPE) would be fine.

> dd if=/dev/tape ibs=800 cbs=80 conv=ascii | LC_ALL=C tr '[:upper:]'
'[:lower:]'

I think this is the right solution.

> you'd rather use: LC_ALL=C dd if=/dev/tape ibs=800 cbs=80 conv=ascii,lcase
then.

The standard doesn't specify the order in which those conversions are applied
(perhaps it should), so to be portable you'd need:

dd if=/dev/tape ibs=800 cbs=80 conv=ascii | LC_ALL=C dd conv=lcase

which has the disadvantage over the tr solution that it would produce two sets
of block counts.

> clarify that those conv=ascii/ebcdic/ibm are legacy stuff of no relevance
today

They are relevant today to users of z/OS (which is a certified UNIX system that
uses EBCDIC). 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2025-11-13 23:13 collinfunk     New Issue                                    
2025-12-11 17:17 geoffclare     Note Added: 0007335                          
2025-12-11 17:18 geoffclare     Status                   New => Interpretation
Required
2025-12-11 17:18 geoffclare     Resolution               Open => Accepted As
Marked
2025-12-11 17:18 geoffclare     Name                     Your Name Here =>   
2025-12-11 17:18 geoffclare     Interp Status             => Pending         
2025-12-11 17:18 geoffclare     Final Accepted Text       =>
https://www.austingroupbugs.net/view.php?id=1959#c7335    
2025-12-11 17:19 geoffclare     Tag Attached: tc1-2024                       
2025-12-15 06:55 ajosey         Interp Status            Pending => Proposed 
2025-12-15 06:55 ajosey         Note Added: 0007338                          
2025-12-16 07:16 stephane       Note Added: 0007340                          
2025-12-16 07:39 stephane       Note Added: 0007341                          
2025-12-16 07:52 stephane       Note Added: 0007342                          
2025-12-16 15:11 geoffclare     Note Added: 0007344                          
======================================================================


  • [1003.1(20... Austin Group Issue Tracker via austin-group-l at The Open Group
    • [1003... Austin Group Issue Tracker via austin-group-l at The Open Group
    • [1003... Austin Group Issue Tracker via austin-group-l at The Open Group
    • [1003... Austin Group Issue Tracker via austin-group-l at The Open Group
    • [1003... Austin Group Issue Tracker via austin-group-l at The Open Group
    • [1003... Austin Group Issue Tracker via austin-group-l at The Open Group
    • [1003... Austin Group Issue Tracker via austin-group-l at The Open Group
    • [1003... Austin Group Issue Tracker via austin-group-l at The Open Group
    • [1003... Austin Group Issue Tracker via austin-group-l at The Open Group
    • [1003... Austin Group Issue Tracker via austin-group-l at The Open Group
    • [1003... Austin Group Issue Tracker via austin-group-l at The Open Group

Reply via email to