From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id wBR/GopPHWVcQgAAauVa8A:P1 (envelope-from ) for ; Wed, 04 Oct 2023 13:42:02 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id wBR/GopPHWVcQgAAauVa8A (envelope-from ) for ; Wed, 04 Oct 2023 13:42:02 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 23C4D44FAF for ; Wed, 4 Oct 2023 13:42:02 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1696419722; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=3f1olynAw19j0pK3vDOCt6UmiF0Kdke4GD9d8+DqEdc=; b=mqPWR9yD4prDYci2g+rbQj7ypfT18Mx7CCfPd/m1hbz+X/v5LzpVP2tIB13AQq+lwSu2uc iLSk46ztm5WsPJGv90PsDmp5XDvTrMtGO7Lp2JgMJymah1gsxlfz/V7yJqSwMw9Ady8/v6 700n5bNRAmEA+zLrhY83hD+JglVy2gfcueR6VK0C3OuLUJiau2+UeHG4IySIZc5N+NmFB5 3/cz8+3FV5fWHLz09PJwZpRQH7nCDGQUrhhjU4d3fetl+HjoOrMpuntQDo+5UsnIiPqjpw bbOEO0mW4c05MXdexPN/xlOE/sMppbqtX232K2xE3heuwwzt9qW8m9sK4pyvSw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1696419722; a=rsa-sha256; cv=none; b=K/47gJrTLbmE4ds3mtzx6POim1zJhxJeLxlJeUrwq+Dnayp8NFJjw6mZ1z9/A4ZhanZsxz N+Hbf0CUrYZuv8Ujl+w7cFt4cYsjJeQXLIHMPVONLPqaMsxykg0y2fNpfd1vXp9sFcFT82 1qyJ5DNWg8tFKytqComNPp6XA2TzimINNLCKvV65wJdXIvCz8NVoSClN3xNbv7rolVJy34 mnAOj3yGK4gJS0Hjj+e7pLZx8cLOsh5gh9zzxHFBiozpjZx9svuzd4zjVM4wGDd2EESuxo ncEIJCEPuy+GvGSFCwTa2xvbg6p2/4FGSdl2ti0bnWNtWOFEgiyA1BZomBYhNQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qo0FW-0000R2-U6; Wed, 04 Oct 2023 07:41:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qo0FR-0000M1-Eq for emacs-orgmode@gnu.org; Wed, 04 Oct 2023 07:41:02 -0400 Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qo0FO-00015v-G5 for emacs-orgmode@gnu.org; Wed, 04 Oct 2023 07:41:00 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1qo0FK-0009eE-Fg for emacs-orgmode@gnu.org; Wed, 04 Oct 2023 13:40:54 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Completion of links to man pages Date: Wed, 4 Oct 2023 18:40:49 +0700 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Content-Language: en-US, ru-RU Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 28 X-Spam_score: 2.8 X-Spam_bar: ++ X-Spam_report: (2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Spam-Score: 2.11 X-Migadu-Spam-Score: 2.11 X-Migadu-Scanner: mx1.migadu.com X-Migadu-Queue-Id: 23C4D44FAF X-TUID: CwG2/LmNxkY5 Hi, I am unsure if the code below is appropriate for :complete property of "man" link. It does not rely on any double-dash functions or variables, but it still uses some implementation details since there is no suitable high level functions in man.el and woman.el from Emacs. (defun org-man-complete (&optional _arg) "Helper for completion of links to man pages." (concat "man:" (let ((completion-ignore-case t)) ; See `man' comments. (funcall (if (eq org-man-command 'woman) #'org-man--complete-woman #'org-man--complete-man) "Manual entry: ")))) (defun org-man--complete-man (prompt) (require 'man) (let (Man-completion-cache) (completing-read prompt 'Man-completion-table))) (defun org-man--init-woman-cache (&optional re-cache) (unless (and (not re-cache) (or (and woman-expanded-directory-path woman-topic-all-completions) (woman-read-directory-cache))) (setq woman-expanded-directory-path (woman-expand-directory-path woman-manpath woman-path)) (setq woman-totic-all-completions (woman-topic-all-completions woman-expand-directory-path)) (woman-write-directory-cache))) (defun org-man--complete-woman (prompt) (require 'woman) (org-man--init-woman-cache) (completing-read prompt woman-topic-all-completions))