Project

General

Profile

Bug #15267

File.basename + File.extname does not restore the original name

Added by nobu (Nobuyoshi Nakada) 11 months ago. Updated about 1 month ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:89615]

Description

Related to #15224, I found the case File.basename(name, '.*')+File.extname(name) == File.basename(name) is not true.

name = 'file.'
File.basename(name, '.*') #=> "name"
File.extname(name) #=> ""

Both do not contain the last dot.

basename(1) seems to result in the base name with the dot, when stripping a wildcard suffix.

$ basename name. '.*'
name.

Files

file-basename-trailing-dot-15267.patch (1.96 KB) file-basename-trailing-dot-15267.patch jeremyevans0 (Jeremy Evans), 08/13/2019 11:48 PM

Related issues

Related to Ruby master - Bug #15244: Method #extname return empty string if filename is dot ('.')FeedbackActions

History

#1

Updated by jeremyevans0 (Jeremy Evans) about 1 month ago

  • Related to Bug #15244: Method #extname return empty string if filename is dot ('.') added

Updated by jeremyevans0 (Jeremy Evans) about 1 month ago

Attached is a patch that fixes this issue. With the patch:

name = 'file.'
File.basename(name, '.*')
# => "file."
File.extname(name)
# => ""

Also available in: Atom PDF