From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 455 invoked by alias); 24 Sep 2016 21:12:49 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: X-Seq: 21967 Received: (qmail 14794 invoked from network); 24 Sep 2016 21:12:49 -0000 X-Qmail-Scanner-Diagnostics: from mail-pf0-f174.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(209.85.192.174):SA:0(0.0/5.0):. Processed in 0.132929 secs); 24 Sep 2016 21:12:49 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: schaefer@brasslantern.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at brasslantern.com does not designate permitted sender hosts) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=from:message-id:date:in-reply-to:comments:references:to:subject :mime-version; bh=CPBxHfNR3BbLE4v6TyKcQCrnTCEIJi0rPhjNfaa5czY=; b=can0spGVG4nlIumvzXtIODqGQ4bwytcU4zSMVkIwmOoxIkreEjEMpEU/6raI9TMbke x2dJCGbixeK5X60NG3o0od5voQfSI883NKR3uAlzJN1KgnhJQ9y8W1r0ek8X2qDTfO5f ehIvgpkXb9uMu+RLlh3fhh2zCmO3E0ZASMGtC1cTZQjfhdRdLgiSXVMxQgBuy0P07ocD ef21z2mxHlMMu7Fojgjr9G/ke1iITT/hbB8fylniQQibwwzpcp0TeHa2SiVYN37bwPz5 QXpa4aYA66RJ19SsaIoykNlKdkuDiZ0u2iezwvCo0CGbpgIrlJae/i/zZ/TYPRtC4SBZ +FSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:message-id:date:in-reply-to:comments :references:to:subject:mime-version; bh=CPBxHfNR3BbLE4v6TyKcQCrnTCEIJi0rPhjNfaa5czY=; b=YdI/pr+RxHqXbvruCXLPS7Q53Re928CNOs/4x72GAkAix/rKi0rQdwFETka1NgS2f6 CPlPjhu5LBZbjD9FC5ML37J7sMP5tvmXxDCgQs2wsblH2og/wV1ywfm3N0h8OCj3LuyG 3xaC6gCTY9JqBvURrHGpfOjYMsc1dV91mOt457qXBqzLB7yvUoznc8IvgiF0Rb6ac1GF pYc0aZhiDnGzv1TehPoEqcoDsiMbdJnNDKft6iwcflbyHFBcMGb0oefwFRzAIGhONnT5 OQdpU5fnHnO2ZEMkDhlQMl0cOCDMdSuRLYUFP9s/RY0/YPkEnv14LYLDqgIpaHGGf7wq 04og== X-Gm-Message-State: AE9vXwOfCN+nmeSxswoCLJCVCn8zG30XSVvqEaz3FEC0hWk3ewb9yhIbKSgTn2apMFuJ2A== X-Received: by 10.98.205.66 with SMTP id o63mr24193849pfg.37.1474751189275; Sat, 24 Sep 2016 14:06:29 -0700 (PDT) From: Bart Schaefer Message-Id: <160924140638.ZM29136@torch.brasslantern.com> Date: Sat, 24 Sep 2016 14:06:38 -0700 In-Reply-To: Comments: In reply to Lawrence Velazquez "Re: Feature request: set extension for =( ) created file" (Sep 24, 3:55pm) References: <4DC55226-A041-42E5-B8B1-3AB1E7E6AB53@macports.org> X-Mailer: OpenZMail Classic (0.9.2 24April2005) To: zsh-users@zsh.org Subject: Re: Feature request: set extension for =( ) created file MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Sep 24, 3:55pm, Lawrence Velazquez wrote: } } > Extension-aware =( ) would be a masterpiece feature for Zsh, though, } > IMO. } } Unless it were implemented using libmagic or something, I would consider } it a massive waste of time and effort. Hence my suggestion of a wrapper function that calls "file". You can generalize my example to have a mapping from "file" output strings to file extensions, and then do something like this: appendfileext() { local filetype="$(file $1)" if [[ -n "${filextcache[$filetype]} ]]; then REPLY="$1.${filextcache[$filetype]}" else case "$filetype" in (...) : you fill this in;; (*) unset REPLY;; esac fi } fixfiletype() { local REPLY integer i declare -a removes { for ((i=1; i <= $#; ++i)); do if [[ "${argv[i]}" = "$TMPPREFIX"* ]]; then appendfileext "${argv[i]}" if [[ -n "$REPLY" ]];then removes+="$REPLY" ln "${argv[i]}" "$REPLY" argv[i]="$REPLY" fi fi done "${argv[@]}" } always { [[ -n "$removes" ]] && /bin/rm -f "${removes[@]}" } } alias vim='fixfiletype vim '