From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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, DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: from zero.zsh.org (zero.zsh.org [IPv6:2a02:898:31:0:48:4558:7a:7368]) by inbox.vuxu.org (Postfix) with ESMTP id 75250299F1 for ; Mon, 18 Mar 2024 16:18:30 +0100 (CET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1710775110; b=SvFDpFD2INt21wvnXObTo/y6MeL0mFvRQzkwvjP9UvZXTXmywpBZPU6cHCeUTQjTTUESdVIqQU v/XiEYGPxLCtbO3iqLbwb5sau4bZ6I/0orD6JObMMz7FPfnZPTezJ2LdRfK5ek61fmFXX/P6b3 BL8vWIPebwlrWuXXO/RFbw7qoUDXDmOybtq2C57jnTDq1E1k14Ug6kjInvtdQ2RDctRFrHLgZJ 3FXSc+5ZrqQRnOlykjLkwhkQlblDx0OD9xU7t5u8pbj55qf+ANAUHm0Dn6p7DV8n2NPcw7+Kho yA9YDWIUznijLQOBrdk+020H7ZKSAusCvSwbtsGkxYq1jg==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-lj1-f180.google.com) smtp.remote-ip=209.85.208.180; dkim=pass header.d=gmail.com header.s=20230601 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1710775110; bh=kbbOrZyMCc9Bsi9IYaimXTc/peFv8w1ok5K2gpaRiUk=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:MIME-Version:Message-ID:Date: Subject:To:From:DKIM-Signature:DKIM-Signature; b=oZ+wtaAxuVhvLgXybhk99JpKAitpfUT6ufodBc38ULHiWUUnncxV4bj87sTDZyvXXxR1HTf69U anyppt9I6VZ1cf6ROGxC2iCFnbMhOS8qTFwdeBMyfLuOAka+5Rd5zL9tzP8URcpxSbWs8BHjoM 73kwAAWVTfdeduKuA6XN3hjotm9/8U7g0ksr5mqSkAjlt+CFMOmlGNIPC8DYAh2HtEY+pzmaXF Bom2KB7cHIwu1pe4t4Njl5PoKTn3VmWrT7VBsebBlLKFR9DonRMx6LaTcHufI5Rl81PORzMswx gHuwC2GIKFLvRXtABuhIcXix+n5eZ8gMYfYOLenHxGsJvQ==; 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: MIME-Version:Message-Id:Date:Subject:To:From:Reply-To:Cc:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References; bh=hF1zP3ub7OiJRNXvFL+MDZwEM/qf2W0Pc8qeJxSZ3I4=; b=Z2mVGoXwDYjyKVZk110+59EwnX FS9OlBXBwXc+QEPkh66hhZIscWaneENPh/RCaNKRuRyMZjq9y7xv6dACGmoYTN6dY+xqpMc5oPlaH MObrIfM0X4HIv3j90mIOricaa71c5Zy/75DvipifqFXVtdts7KJ5gt5rcqgdHMOR6pUsQ+/PaCFyT l/WWwHefiGof7NeZV7JNUDaUFTioKU9NQ702xx/mGh3NEzUtA64+L9+VAOgIq3JIz/xGOZhBrcf3s FfxiR1fDBA00W/xRKdjz491HkSUNdj4OEKunW9CVZXrBGckcMg0XoNfTIk+NUzTLsKf2qJM1U0Hq2 pr0shTnA==; Received: by zero.zsh.org with local id 1rmEkw-000C2k-DP; Mon, 18 Mar 2024 15:18:30 +0000 Authentication-Results: zsh.org; iprev=pass (mail-lj1-f180.google.com) smtp.remote-ip=209.85.208.180; dkim=pass header.d=gmail.com header.s=20230601 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-lj1-f180.google.com ([209.85.208.180]:56375) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1rmEkM-000BjH-Ko; Mon, 18 Mar 2024 15:17:56 +0000 Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-2d4886a1cb4so49450681fa.0 for ; Mon, 18 Mar 2024 08:17:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710775074; x=1711379874; darn=zsh.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=hF1zP3ub7OiJRNXvFL+MDZwEM/qf2W0Pc8qeJxSZ3I4=; b=GxzI1AG+D5niQSYKe9I7xW6Q8l6S1F6x91RUlS3UqWwEm98o0Md+B2sKWH3fyjy5Nx pN7X8TCIOXR6OaUEliJCVHH43dnCCBK101SAMR15U/cLV2XgWqT4KlHAE+rHh1a741VJ F6REYy7YTzUUPG9y+LqR5cBthLBC81aXXyVi01j5L2br001utr5ln+8cq0+h1jzATcYI Xzwlmf+rDmLIB6nVJ0en/1pFs5Ib0XcYZ6uN0tRnqkKjaWl93+szp1IHpJQKt2ocDpKj KGPtRP0HD/7S+KUTwjM6gxesvrdDalYMk9V7RqtGorycPs4dvDkP214+eC+dTUHyTj+J 7O7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710775074; x=1711379874; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=hF1zP3ub7OiJRNXvFL+MDZwEM/qf2W0Pc8qeJxSZ3I4=; b=mOeOLAqPPRxEKZCN/cAlAAvGwtQUNwbrJHMVGLDYEYvvR35JQR0QOq3y5sX/hAcYyj fhkQMlBoIB4x9B5AZdwj09dBnhCVhBcBFI5BdsUcBDcSpg0yyQSJKkm6UvsTV0y6I/Uu Z2WrBGNc9bGcUOWjP/7lNbLwTuU4prlQZnYrNwiedRgxO85V4WSfk4xffzi3vX9zskNO WyvPofDyds1KWvoHMzzrXapgFU5aHKIxr6zwWDSifyFsx35YFnhyMPu5Y8uxedkP4rsH VuqQnFXXPsh/x/I57vhdA+gi7HdADYv5H0qGedo/kzSpDZlACFsiYzGo4f2zJstT3RCK 59gg== X-Gm-Message-State: AOJu0YwbmfXaBWpji3EkB+lTdyYXxH1jrktbz4Qrg6Erjljz+vhWwb0/ fKxVu4kaaWAG2VB2m1EDL3XOmhjO6bNu3epll1Jnvm9+XlzdZvwvPtTgxwIz X-Google-Smtp-Source: AGHT+IFPCb0bU0R3rp8uuAovnpN4sFFWMhXvEg3Nv5AMyo1ocONW0XbUBScsucW+zolm3G19uVNKvw== X-Received: by 2002:a2e:aa98:0:b0:2d2:2dbb:389e with SMTP id bj24-20020a2eaa98000000b002d22dbb389emr8435174ljb.23.1710775073375; Mon, 18 Mar 2024 08:17:53 -0700 (PDT) Received: from localhost.localdomain (h-94-254-94-11.A230.priv.bahnhof.se. [94.254.94.11]) by smtp.gmail.com with ESMTPSA id l24-20020a2ea318000000b002d33a1da18csm1511917lje.113.2024.03.18.08.17.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Mar 2024 08:17:52 -0700 (PDT) From: Mikael Magnusson To: zsh-workers@zsh.org Subject: PATCH: Handle completer filenames with funny characters in them Date: Mon, 18 Mar 2024 16:17:51 +0100 Message-Id: <20240318151751.1096-1-mikachu@gmail.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Seq: 52768 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: For example, a file called _foo;bar will cause this to happen: % hello [press tab]zsh: command not found: _foo zsh: command not found: bar I'll admit I'm not sure if adding the -r for compassocs at the end is correct, the array is empty for me and I don't know what it's for. --- Completion/compdump | 6 +++--- Completion/compinit | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Completion/compdump b/Completion/compdump index 6daf92f9ff..5af5174f12 100644 --- a/Completion/compdump +++ b/Completion/compdump @@ -113,7 +113,7 @@ integer _i=5 print -n autoload -Uz >& $_d_fd while (( $#_d_als )); do if (( ! $+_compautos[$_d_als[1]] )); then - print -n " $_d_als[1]" + print -rn " ${(q-)_d_als[1]}" if (( ! --_i && $#_d_als > 1 )); then _i=5 print -n ' \\\n ' @@ -126,13 +126,13 @@ print >& $_d_fd local _c for _c in "${(ok@)_compautos}"; do - print "autoload -Uz $_compautos[$_c] $_c" >& $_d_fd + print -r "autoload -Uz ${(q-)_compautos[$_c]} $_c" >& $_d_fd done print >& $_d_fd print "typeset -gUa _comp_assocs" >& $_d_fd -print "_comp_assocs=( ${(qq)_comp_assocs} )" >& $_d_fd +print -r "_comp_assocs=( ${(qq)_comp_assocs} )" >& $_d_fd exec {_d_fd}>&- mv -f $_d_file ${_d_file%.$HOST.$$} diff --git a/Completion/compinit b/Completion/compinit index 5cb527fac8..51e9d88b83 100644 --- a/Completion/compinit +++ b/Completion/compinit @@ -301,7 +301,7 @@ compdef() { if [[ -z "$eval" ]] && [[ "$1" = *\=* ]]; then while (( $# )); do if [[ "$1" = *\=* ]]; then - cmd="${1%%\=*}" + cmd="${(q)${1%%\=*}}" svc="${1#*\=}" func="$_comps[${_services[(r)$svc]:-$svc}]" [[ -n ${_services[$svc]} ]] && @@ -412,7 +412,7 @@ compdef() { svc= fi if [[ -z "$new" || -z "${_comps[$1]}" ]]; then - _comps[$cmd]="$func" + _comps[$cmd]="${(q)func}" [[ -n "$svc" ]] && _services[$cmd]="${1#*\=}" fi ;; -- 2.38.1