Path: csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail From: Didou Serge Newsgroups: gnu.bash.bug Subject: Re: [mapfile]: problem reentrance with normal file Date: Mon, 12 Nov 2018 18:47:55 +0100 Lines: 105 Approved: bug-bash@gnu.org Message-ID: References: NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Trace: usenet.stanford.edu 1542045323 29751 208.118.235.17 (12 Nov 2018 17:55:23 GMT) X-Complaints-To: action@cs.stanford.edu Cc: bug-bash@gnu.org, bash@packages.debian.org To: Chester Ramey Envelope-to: bug-bash@gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=bDPoNP2j1BidY4VTmw7Sx2FzcazNdtVA565HF/8rT24=; b=OjWmDBkRJfZlWUbv35xk2DTdzXHwQ+07/0BDMDXc8eZE8cG8qt+nnqCChI2iTNoP4U d/h/YtQL6EzQlFIBZq4MzHB1p9hm/LYojrLMb8WQd3LKOp0azUml2acDQ4PR4bYkg2q0 FI+0lIiCD2y+y2FsoKk/j7R5UONC1xIKEig7gb95eZHWZgUHOvHfwwBrOvZJwWm1saZQ ZyX7qilWbDgNyfiRt4SDFm+YTYxEyysRLu27IP+GjQuZbfwsA6Tv8u1VptfZAOiLbXZY MCHsigytfvgUYlixl0vCDul+uN1eFwieJnSaPWk4cWmHTqEaJmQ1tkdnO+yu209GdKZc ZVzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=bDPoNP2j1BidY4VTmw7Sx2FzcazNdtVA565HF/8rT24=; b=OYMNX1hkGhZjLoBAHLQmz8WKogwp2tiqZMFmQDWisQqG1Jk8A6DUZREOr4XymewOGZ R+J8eb4reo8fw/p7zEwONqyZ4uSvehlo5ToqPZeyCjMIcuUVaVyDX38RJ5fIkZ0dlstJ Ht6L3noDLU2TejBEAXegdtfb2T0ada2ZaDf8bgPVdW6Aklq17iht1E5ioARetRUYNRwf +qvcMdIWbL8qxxvLgvo2ncxY+OSCYp7stmHo7KBwwemvND6vMj62BbW6nnJVUPOZmpxy HOCxfx4dYJDy+D6UzKZ2WJhPvGiyQxhHp4VbVZoyXY1wHOfp/yPF1ibHoTDDKZdYIWlH RW2g== X-Gm-Message-State: AGRZ1gJQAys9hcADZbDOOTAh3EaraKomYdh0LhETYTMacOqN+Nky5d+a Ojzu3F8OQy5XGjjmM2RjG/ehZNcI9gatr4YhqvE= X-Google-Smtp-Source: AJdET5d1jPOVtgtiNPv697mIIITzChAuKglqk1id36li74lxnrICyFWntGTbIiSd9Xc6q7M07Ll8xkcZbxfg9RuXerE= X-Received: by 2002:a17:906:6983:: with SMTP id i3-v6mr10210556ejr.141.1542044887542; Mon, 12 Nov 2018 09:48:07 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::542 X-Content-Filtered-By: Mailman/MimeDel 2.1.21 X-BeenThere: bug-bash@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Bug reports for the GNU Bourne Again SHell List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com gnu.bash.bug:14799 But not work under linux... Le lun. 12 nov. 2018 =C3=A0 17:00, Didou Serge a = =C3=A9crit : > I tested with another configuration and ALL work fine: > Configuration Information [Automatically generated, do not change]: > Machine: x86_64 > OS: cygwin > Compiler: gcc > Compilation CFLAGS: -DPROGRAM=3D'bash.exe' -DCONF_HOSTTYPE=3D'x86_64' > -DCONF_OSTYPE=3D'cygwin' -DCONF_MACHTYPE=3D'x86_64-unknown-cygwin' > -DCONF_VENDOR=3D'unknown' -DLOCALEDIR=3D'/usr/share/locale' -DPACKAGE=3D'= bash' > -DSHELL -DHAVE_CONFIG_H -DRECYCLES_PIDS -I. > -I/usr/src/bash-4.4.12-3.x86_64/src/bash-4.4 > -I/usr/src/bash-4.4.12-3.x86_64/src/bash-4.4/include > -I/usr/src/bash-4.4.12-3.x86_64/src/bash-4.4/lib -DWORDEXP_OPTION -ggdb > -O2 -pipe -Wimplicit-function-declaration > -fdebug-prefix-map=3D/usr/src/bash-4.4.12-3.x86_64/build=3D/usr/src/debug= /bash-4.4.12-3 > -fdebug-prefix-map=3D/usr/src/bash-4.4.12-3.x86_64/src/bash-4.4=3D/usr/sr= c/debug/bash-4.4.12-3 > -Wno-parentheses -Wno-format-security > uname output: CYGWIN_NT-6.1 EB-5CG63201SJ 2.8.0(0.309/5/3) 2017-04-01 > 20:47 x86_64 Cygwin > Machine Type: x86_64-unknown-cygwin > > Bash Version: 4.4 > Patch Level: 12 > Release Status: release > > > > Le lun. 12 nov. 2018 =C3=A0 16:48, Didou Serge a > =C3=A9crit : > >> Ok, in this case, this should not work either: >> >> mapfile -C xx -c 1 UU < <( echo -e "Premiere ligne" A{1..45} >> "\nDeuxieme ligne" B{1..45} "\nTroisieme ligne" C{1..45}) >> >> But, this form work fine. >> >> Le lun. 12 nov. 2018 =C3=A0 15:44, Chet Ramey a = =C3=A9crit : >> >>> On 11/11/18 3:32 PM, Didou Serge wrote: >>> >>> > Bash Version: 4.4 >>> > Patch Level: 7 >>> > Release Status: release >>> > >>> > Description: >>> > When use mapfile from normal file that call function that use mapfile= , >>> the >>> > first mapfile lost data. >>> > >>> > Repeat-By: >>> > I create 3 functions: >>> > ww(){ echo "$@" | mapfile -C yy -c 1 -t TT ; } >>> > xx(){ mapfile -C yy -c 1 -t TT < <(echo "$@") ; } >>> > yy(){ echo "$@" ;} >>> > >>> > I create 1 normal file: >>> > echo -e "Premiere ligne" A{1..45} "\nDeuxieme ligne" B{1..45} >>> "\nTroisieme >>> > ligne" C{1..45} >fic.txt >>> > >>> [...] >>> > This not work (lost data in second line and after) : >>> > mapfile -C xx -c 1 UU >> > 0 0 Premiere ligne A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 >>> A16 >>> > A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 A28 A29 A30 A31 A32 A33 >>> A34 A35 >>> > A36 A37 A38 A39 A40 A41 A42 A43 A44 A45 >>> > 0 1 B17 B18 B19 B20 B21 B22 B23 B24 B25 B26 B27 B28 B29 B30 B31 B32 >>> B33 >>> > B34 B35 B36 B37 B38 B39 B40 B41 B42 B43 B44 B45 >>> > 0 2 ligne C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 >>> C18 >>> > C19 C20 C21 C22 C23 C24 C25 C26 C27 C28 C29 C30 C31 C32 C33 C34 C35 >>> C36 C37 >>> > C38 C39 C40 C41 C42 C43 C44 C45 >>> >>> This is a buffering issue caused by nested calls to mapfile in the same >>> process. The first call to mapfile reads a bufferful of data from the >>> input file, and the second mapfile (the one executed as part of the >>> callback) reads data into that same buffer. When the second call >>> finishes, >>> and the first mapfile is called again, the remaining characters in the >>> buffer have already been discarded. It's not safe to call mapfile as pa= rt >>> of a callback to a mapfile invocation. >>> >>> Chet >>> -- >>> ``The lyf so short, the craft so long to lerne.'' - Chaucer >>> ``Ars longa, vita brevis'' - Hippocrates >>> Chet Ramey, UTech, CWRU chet@case.edu >>> http://tiswww.cwru.edu/~chet/ >>> >>