From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 14094 invoked from network); 10 Aug 2021 22:37:53 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 10 Aug 2021 22:37:53 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1628635073; b=KhbFZCp4obq6ekrHH/VWP4LlLmPV/W5HfoFsgHaJDzaT/ohph/TcK4yd9tXRvuaIODR1hQtcgn IzRXhdo58v4ekujw5yjmpo4f2WIu3eGWS37/7NIti+W756tMOtTSG4xgC8Pyj4AAH0Xjy7njQx CmFa5s4ImY/z8FhLkR73FUDWvLib/FjeSAqHt6qEVfqttnJxqBZmq7iGpAAjQD9wYdS5GV26ni FHCuBO04Wgjhz12+AWT8j22G9pRRLaGv4ngnYZoyoGR9qZXak/Q21qd+VKd26pEp8THbzn0N6Z O2fjuc4LVhHFhCt0IILtBg/2h74ZOBJiAIMYi5/Tzjz4EQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-yb1-f171.google.com) smtp.remote-ip=209.85.219.171; dkim=pass header.d=brasslantern-com.20150623.gappssmtp.com header.s=20150623 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1628635073; bh=qGHD/8VIbo+ayF+XVWFsRLva15MkNgXnhLDvQLAKBE8=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:Cc:To:Subject: Message-ID:Date:From:In-Reply-To:References:MIME-Version:DKIM-Signature: DKIM-Signature; b=oAaTkDJrJFpD4B1JgaNQf6JQi6xfXG7i0f3b0sabD+PQIaiOtNgqtKfgtrr7tDVrChu8f75suM pZ6a0KPsC30GLSPIAcigxH6qCd2Ch48Vejq+BqjpExqm4YEbw2bm2ZSa2zxEXdC1CkHmt8zguf D9QMNIMY6lwr2ZJs6XvHxplB8LoMkPNPycyLXvRdkRfTmgvizQP1XFf7CdnDAvuJQJK/slALHu CdBfni0UYumrS8I+JZ3I0qAJ0o3NVSwTSLW2dAvGi1+nGE2P8FuQLO9emiQ8iKaFLJ+dPQ/RIb hu0d5kblKQtymbn8N0Q91Q+AYt7JSvkwElkZl1lAduvsDw==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Transfer-Encoding: Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=QiTDu8jBRheZkpDFY+U5inPnzibbaK/o0gbc+eBk1cI=; b=YialZ0FlKRt0nnUj+SG+P2NQW3 ogsjqCNI4+uSHoMBk8jmD3XhKMsK/m4GZHpL9ibNfcIWkok9CIYVdGeoyw+9A9FjPDuxQKyzk2Lhd kN7KIi9WBT9tV7CEwu8xD8dnju0FFGmOdZBDh9XQwNVII073+CRsoKqyVVWSYgRMncWtW0mOs6tWS AQ78H2MprI5ZEE/cm26cdLZj/5+2rfEAQrr8jFhPVatpZsPvfyGZMKcgzRW8C67EYXm5mTLXAzkPg Z0t0eNHqjxve7DwFHU3etR2d8JCTYiLZSywvKBycWcTYbrEOdlF2nFa2oAcq4niQIr+VVYUhO0si+ Hq3y4L5Q==; Received: from authenticated user by zero.zsh.org with local id 1mDaNd-0009Le-Kz; Tue, 10 Aug 2021 22:37:53 +0000 Authentication-Results: zsh.org; iprev=pass (mail-yb1-f171.google.com) smtp.remote-ip=209.85.219.171; dkim=pass header.d=brasslantern-com.20150623.gappssmtp.com header.s=20150623 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-yb1-f171.google.com ([209.85.219.171]:40663) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1mDaMw-0008cr-Vu; Tue, 10 Aug 2021 22:37:12 +0000 Received: by mail-yb1-f171.google.com with SMTP id l3so737827ybt.7 for ; Tue, 10 Aug 2021 15:37:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=QiTDu8jBRheZkpDFY+U5inPnzibbaK/o0gbc+eBk1cI=; b=x/LvcEEesWeFbdcMLPoDZUZ1yxXEH/jozu7ExgVasowjEXv1ox+AAN/YJuk8N77bMU FXk+75p4hCsdpDMZ1Mb0L26//WBBsBhA8aVyhF8jLIgLL2mqhCRKS7jT0Lu1K2KoJRH2 jJOUR6LAhkAd6ihjE+oew5vEfLOA6rfUq3SGKck+YaGDPf9F5bg6rCJrpq38da0h2z9Z 7Y2IOTe5NMrHBWEqnFPLNM4sJOJWbJyydPEEKCNzb+8tZ7f/95QytkG+t0oP51I+Ugip UeCoiiE5UMLJEiBlFAyivV6ckGvigbsFHxKARaidhewAeu+wQe9YNX8g0FgmcyqAROJw N9Ig== 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:content-transfer-encoding; bh=QiTDu8jBRheZkpDFY+U5inPnzibbaK/o0gbc+eBk1cI=; b=YuUP/nXk55Fw2jvHBCVWgVjl4o/1yuqgETSChhOdA13owEtOTv1AI0lIbgDj03d/ez 8K2NOe7jYkJ1xNzTeS5k+3nDj9/SevkdZAJhLzCVlPVl1eRAhwlNQN9OTBzfaHuiJPPq 3X/soc/4SCjpTxod/wo7KO6h/2JzjSNXSyKyF3nV07wVE6pPKeI+iqfKFdyKPAc5wWB8 HK/X7VEFabh6j8e8KeSVkVSj9AJ3sKKUVjnwl76w/7vu7fP7dfQXAS2aYlqus/ZJCBCs rVQt4P55Oo4G5dEMRIEoYkUfR4Z96SDGl/YBixnn22itOeod6YlaFwJ8zgoqNFoQAUKv j92A== X-Gm-Message-State: AOAM53061ktqlwflUMfG3Y7Kl0M3oVZnUEaGnqtW0BZ6Mn7If7JbhUX1 CiJrgFRzwPbbmR8ZqpP5mwNcNoDsS8pYwMMkDh/2vA== X-Google-Smtp-Source: ABdhPJw8Rxu8ncu5nHnHNB7pfJpZRWhCiXlbRTYE3JjjeaN8L1d4nq6W8I5yNUre/sW0xUrYlM7/YMgy7TBzZnb7CJo= X-Received: by 2002:a25:dc12:: with SMTP id y18mr42199601ybe.69.1628635030004; Tue, 10 Aug 2021 15:37:10 -0700 (PDT) MIME-Version: 1.0 References: <68cd3b1c-0a75-af79-f262-e5dd32233c55@gmail.com> <3c2e9d50-b7c5-6e59-c29f-3d175e7bf608@gmail.com> In-Reply-To: <3c2e9d50-b7c5-6e59-c29f-3d175e7bf608@gmail.com> From: Bart Schaefer Date: Tue, 10 Aug 2021 15:36:58 -0700 Message-ID: Subject: Re: Converting relative paths to full To: =?UTF-8?Q?G=C3=BCrkan?= Cc: Zsh Users Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Seq: 26904 Archived-At: X-Loop: zsh-users@zsh.org Errors-To: zsh-users-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-users-request@zsh.org X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: On Tue, Aug 10, 2021 at 2:53 PM G=C3=BCrkan wrote: > > > function _edit_command_to_register_full_path { > emulate -L zsh > > REPLACED=3D"$1" > for element in `echo "$1"`; do > # Don't care about parameters > if [[ "$element" =3D=3D -* ]]; then > continue > fi > FULLPATH=3D"${element:P}" > if [[ -f $FULLPATH ]] || [[ -d $FULLPATH ]]; then > REPLACED=3D`echo "$REPLACED" | sed "s!$element!$FULLPATH!"` > fi > done > print -Sr -- ${REPLACED%%$'\n'} > return 1 > } That's far more complicated than necessary. function _edit_command_to_register_full_path { emulate -L zsh for element in ${(z)1}; do # Don't care about parameters [[ $element =3D=3D -* ]] && continue FULLPATH=3D"${element:P}" # Don't replace when already the full path [[ $element =3D=3D $FULLPATH ]] && continue # Don't replace when path doesn't exist [[ -f $FULLPATH || -d $FULLPATH ]] || continue # [[:space:]] to protect previous replacements # (this is still not foolproof for path prefixes) set -- "${1/[[:space:]]$element/ $FULLPATH}" done print -Sr -- ${1%%$'\n'} return 1 }