From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.devel Subject: Re: [Elisp: 8 out of 10 problems] I think the last one! (point) Date: Sun, 11 Aug 2024 06:46:14 +0200 Message-ID: <87y153y8dl.fsf@dataswamp.org> References: <875xs7zzik.fsf@dataswamp.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31719"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Cancel-Lock: sha1:l6D6UbVqvjj+rZdLIQMXu9m4FQM= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Aug 11 07:23:36 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sd13H-00087z-RB for ged-emacs-devel@m.gmane-mx.org; Sun, 11 Aug 2024 07:23:35 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sd131-0004ln-Ca; Sun, 11 Aug 2024 01:23:19 -0400 Original-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 1sd0TO-00083D-BC for emacs-devel@gnu.org; Sun, 11 Aug 2024 00:46:32 -0400 Original-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 1sd0TI-0007hn-UR for emacs-devel@gnu.org; Sun, 11 Aug 2024 00:46:30 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1sd0TG-0005lw-Jv for emacs-devel@gnu.org; Sun, 11 Aug 2024 06:46:22 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sun, 11 Aug 2024 01:23:08 -0400 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:322630 Archived-At: > But also look closer at the code. Point is > constantly moving. Let me just add one thing, there is nothing to say just because you edit and draw, you must move point like crazy explicitely back and forth. Her, for example, draw a box. Not a single command to just move point around. BTW, for that super-simple function, it has 8 lines of interfaces and 11 for the program. 42% interface! But maybe if you setup things carefully, that I why I don't have to move point around? Well, here, that is. ;; +-------------------+ ;; | | ;; | Box, `draw-box' | ;; | | ;; +-------------------+ (defun draw-box (xc &optional yc) (interactive (list (read-number "x cols: " 74) (read-number "y cols: " 25))) (unless yc (setq yc xc)) (when (and (<= 3 xc) (<= 3 yc)) (let* ((yb ?\|) (xb ?\-) (cb ?\+) (bb ?\s) (xci (- xc 2)) (yci (- yc 2)) (tl (format "%c%s%c" cb (make-string xci xb) cb)) (xl (format "%c%s%c" yb (make-string xci bb) yb)) (all `(,tl ,@(make-list yci xl) ,tl)) (str (string-join all "\n"))) (insert "\n" str)))) -- underground experts united https://dataswamp.org/~incal