From owner-freebsd-bugs@freebsd.org Wed Oct 23 19:21:00 2019 Return-Path: Delivered-To: freebsd-bugs@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2593A15B659 for ; Wed, 23 Oct 2019 19:21:00 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.nyi.freebsd.org (mailman.nyi.freebsd.org [IPv6:2610:1c1:1:606c::50:13]) by mx1.freebsd.org (Postfix) with ESMTP id 46z0bJ0Fg9z4YpB for ; Wed, 23 Oct 2019 19:21:00 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.nyi.freebsd.org (Postfix) id 06A5E15B658; Wed, 23 Oct 2019 19:21:00 +0000 (UTC) Delivered-To: bugs@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0550115B657 for ; Wed, 23 Oct 2019 19:21:00 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46z0bH6JwZz4Yp9 for ; Wed, 23 Oct 2019 19:20:59 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2610:1c1:1:606c::50:1d]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BDA4412A7 for ; Wed, 23 Oct 2019 19:20:59 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.5]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x9NJKxWd009315 for ; Wed, 23 Oct 2019 19:20:59 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x9NJKxp8009249 for bugs@FreeBSD.org; Wed, 23 Oct 2019 19:20:59 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 241441] inconsistency between allowed empty regex for `awk -F` and split() Date: Wed, 23 Oct 2019 19:20:58 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: bin X-Bugzilla-Version: 12.0-STABLE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: freebsd@tim.thechases.com X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Oct 2019 19:21:00 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D241441 Bug ID: 241441 Summary: inconsistency between allowed empty regex for `awk -F` and split() Product: Base System Version: 12.0-STABLE Hardware: Any OS: Any Status: New Severity: Affects Some People Priority: --- Component: bin Assignee: bugs@FreeBSD.org Reporter: freebsd@tim.thechases.com I get an error when I try to use an empty regex for the field separator: $ echo hello | awk -F '' '{print $2}' awk: field separator FS is empty but awk has no issues splitting things on an empty regex: $ awk 'BEGIN{s=3D"hello"; split(s, a, ""); print a[1]}' h Over on gawk, I get the expected behavior $ echo hello | awk -F '' '{print $1}' h This is somewhat similar to #226112 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D226112 I get that awk uses EREs and `man re_format` says that "A (modern [Extende= d]) RE is one or more non-empty branches, separated by '|'", but 1) that's not what split() does 2) it's not what gawk's -F parameter does 3) permitting an empty regex for splitting already seems supported in awk c= ode (as the split example shows) and shouldn't break any existing usage 4) as a non-workaround, `man re_format` says that the atom "()" matches the null string, but $ echo hello | awk -F '()' '{print $1}' doesn't split the row on the null regular expression (FWIW, gawk gives the = same results when using "()" as the split pattern). In an ideal world, the behavior would match the behavior of gawk & the spli= t() function, splitting the record into each individual character. --=20 You are receiving this mail because: You are the assignee for the bug.=