Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #14799

Re: [mapfile]: problem reentrance with normal file

Path csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail
From Didou Serge <serge.didou@gmail.com>
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 <mailman.3930.1542045323.1284.bug-bash@gnu.org> (permalink)
References <CACXkx7VreuDnWv8EWvCAiU0E09RRMSgXkabFP5UkBPSgzcVGRA@mail.gmail.com> <cdc5932c-847e-1e55-5785-4e01e2833570@case.edu> <CACXkx7WFFO8nK=H6aKYjVdthgwM_q0p916cJnjLV11FRnoMDEA@mail.gmail.com> <CACXkx7VyZmVBXv6jUqAJbUG=qCAmyshKk9F-6LRgdQ-WM3Qupw@mail.gmail.com>
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 <chet.ramey@case.edu>
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 <CACXkx7VyZmVBXv6jUqAJbUG=qCAmyshKk9F-6LRgdQ-WM3Qupw@mail.gmail.com>
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 <bug-bash.gnu.org>
List-Unsubscribe <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe>
List-Archive <http://lists.gnu.org/archive/html/bug-bash/>
List-Post <mailto:bug-bash@gnu.org>
List-Help <mailto:bug-bash-request@gnu.org?subject=help>
List-Subscribe <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe>
Xref csiph.com gnu.bash.bug:14799

Show key headers only | View raw


But not work under linux...

Le lun. 12 nov. 2018 à 17:00, Didou Serge <serge.didou@gmail.com> a écrit :

> 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='bash.exe' -DCONF_HOSTTYPE='x86_64'
> -DCONF_OSTYPE='cygwin' -DCONF_MACHTYPE='x86_64-unknown-cygwin'
> -DCONF_VENDOR='unknown' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='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=/usr/src/bash-4.4.12-3.x86_64/build=/usr/src/debug/bash-4.4.12-3
> -fdebug-prefix-map=/usr/src/bash-4.4.12-3.x86_64/src/bash-4.4=/usr/src/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 à 16:48, Didou Serge <serge.didou@gmail.com> a
> écrit :
>
>> 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 à 15:44, Chet Ramey <chet.ramey@case.edu> a écrit :
>>
>>> 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 <fic.txt
>>> > 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 part
>>> 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/
>>>
>>

Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

Re: [mapfile]: problem reentrance with normal file Didou Serge <serge.didou@gmail.com> - 2018-11-12 18:47 +0100

csiph-web