From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu Newsgroups: gmane.emacs.devel Subject: Re: move_it_vertically_backward question Date: Mon, 20 Dec 2021 09:05:19 +0800 Message-ID: <87mtkw5bn4.fsf@yahoo.com> References: <87lf0pw78r.fsf.ref@yahoo.com> <8335muj8zk.fsf@gnu.org> <87h7bang3d.fsf@yahoo.com> <83mtl1j527.fsf@gnu.org> <87zgp1mldh.fsf@yahoo.com> <83tuf9gdg5.fsf@gnu.org> <87pmpwkikp.fsf@yahoo.com> <83mtl0hnm5.fsf@gnu.org> <87czlwkfpk.fsf@yahoo.com> <8735mskal2.fsf@yahoo.com> <83ee6che8h.fsf@gnu.org> <87y24kisgf.fsf@yahoo.com> <838rwkhcqb.fsf@gnu.org> <87r1achulq.fsf@yahoo.com> <83pmpub41v.fsf@gnu.org> <87pmptbeii.fsf@yahoo.com> <8335mp9evn.fsf@gnu.org> <877dc19cpc.fsf@yahoo.com> <83zgox7xmf.fsf@gnu.org> <87ilvk99j0.fsf@yahoo.com> <83lf0g79je.fsf@gnu.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="25924"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.60 (gnu/linux) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Dec 20 02:06:52 2021 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 1mz78d-0006X5-Qo for ged-emacs-devel@m.gmane-mx.org; Mon, 20 Dec 2021 02:06:51 +0100 Original-Received: from localhost ([::1]:59626 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mz78c-0004Km-FJ for ged-emacs-devel@m.gmane-mx.org; Sun, 19 Dec 2021 20:06:50 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:42158) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mz77O-0003Ox-MM for emacs-devel@gnu.org; Sun, 19 Dec 2021 20:05:34 -0500 Original-Received: from sonic303-22.consmr.mail.ne1.yahoo.com ([66.163.188.148]:38472) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mz77M-0006uS-Tk for emacs-devel@gnu.org; Sun, 19 Dec 2021 20:05:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1639962330; bh=FfTJf8maAJwEtqdEbIrjrHafSTquXAcPE+GlHDN26vc=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From:Subject:Reply-To; b=iNC0pwQAH9dwS7qVuvmZfYNod1eM2RMsjzjpJ8xQLm2oEG+QuMGrMhEtkv6X0/Lqxo7gj/ld3RQDdiATHuIRGUMn2lQ0MSjoKHX7v+NK5syiRF6O61PVdyVRQ2PAfsrccyu7J9o1uODPH0aoRHmYGTFSLVZy9LTlveVQPWKlP/BbHDeTKykKEpHDrs+JJpbK/IWBaCmh1khoBnlT2iET/slOQWjSyCvhvF4uCucPMTGTHWw36qHVBnuXAzVewFbt14KWZcxLt0S0e8a1xUdLM3lu/el3o4FZhNIpPV41iaZ7rbRl3TfAE9ZJYic2wTyvRZYJ3CxkbCGeWCxfGtnHNA== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1639962330; bh=C4HSNDiOGj3pnLzK/reUE/M6ahJSZOAaQs/+QBiWYwx=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=S3Ye0PgVCpcJQWwHKRpGCgHo7dxSD90eyMBVrn+E0ZBolqPtAGtQ9c8VY/uU8hcLcp0gZRHDTeT53eQA4WVXvy38eheMGV40f/2RhOa/fergzB+CQvSE9OvJqxA0/Z743hamgsibEaIL6mIX47piqvrw3ybelzE7p25PSWaqXKh18g9BoqgQqTs6NI2fFNVrJOT/B2QZv1fFoL82SAo6xr+vksmnVQPBuboa/06091qDtHFoKW5wNuni5FgZ6BMS/Joc16VqaaOHU8/Y9q4F29KkPbTlgP8v2WoNzv5ftLuct9n1xdBjMMJRcOdDGxrO78a+w6p+BvJznwILw8bV9A== X-YMail-OSG: fwrafl0VM1mKTwazblm42N8zZ.5MkFm3Tg2TlQe07ZXlt5eBj1ChSjm8RCLwwax kQOpyM6XSNjfhc3xrrePy6_D6zxbWK73OsX59OSYQFu8u76GSYK.zPTbkIGqnH3L7fSV5gD5.RtG DAdOXcUCtjT5s8076a6MtDLtRw7nCl4qSkk7BVcdB.0KMl.JeIrxln4WeXF1MnKvYYbaIOV5EjF. Wyex03QnXf2pWlHSL_IMrmNDW0tHAg0RmFG8TdiexS3Wjt8LP4a7qiVqnKyHP0Qi6NcNk.qLhvK0 Nzxpp52OUesNCs34vymHXMVaX2VqhEN8ASphGgJv0Qp.JHrwi.QB1xeLIUy2.VGstbboJCR_2gvz 4RcHCmuMmpwB6j.tDHaBj9vHJjghzZHWwNvoPl0JjGq89D844IaW5rPnXUvO3hjjpfWiVh56305X Wa4XbH0x0d.uO1HO.yeMQG8Vmjl7GPPIshp8hyKJ.LPlbF1bBYx_WhBDWvtewsHJxQe07jZlBzDy vCog4_taj7KRCdKaBcGa.Llbu_fclwb_h8uoA4uWhQ02PQ.V0KJqESvz0S7aCo42pZJWlAZMOE_V Vp9UFJuqKw41nAkVvG0rRgTF6qvl55uXDNL2fQT50P0yqG79W1CspXng6s7of_CrIn5A0sbw4sGI tcA5YiSjyRToaE4jxiWwj2Bl0e26K3lyCgZFmGu9XzHDGDQPDusOn9Nqsc2WWloN3G2jnTKyeH5q 8PkyBiSCNEvgADDwhPctg0TCtW3SBI_Q48qbdvT03MHmu9sMPJfFqD71bzwoFI7PWc3CvFQfENW3 TLSSdSdVtA6i_KMwtCFck9Wz4FMlfYWI1E4Pg5Uq2V X-Sonic-MF: Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.ne1.yahoo.com with HTTP; Mon, 20 Dec 2021 01:05:30 +0000 Original-Received: by kubenode503.mail-prod1.omega.sg3.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 13e8d3a07da9c6a8de6d13492029f742; Mon, 20 Dec 2021 01:05:23 +0000 (UTC) In-Reply-To: <83lf0g79je.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 19 Dec 2021 20:07:49 +0200") X-Mailer: WebService/1.1.19498 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Received-SPF: pass client-ip=66.163.188.148; envelope-from=luangruo@yahoo.com; helo=sonic303-22.consmr.mail.ne1.yahoo.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action 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" Xref: news.gmane.io gmane.emacs.devel:282480 Archived-At: Eli Zaretskii writes: >> From: Po Lu >> Cc: emacs-devel@gnu.org >> Date: Sun, 19 Dec 2021 18:25:07 +0800 >> >> + if (movement != 0) >> + { >> + int last_y; >> + it.current_y = 0; > The last assignment should be unnecessary here: start-display always > initializes the coordinates to zero. The comment (and code) below seems to make it seem as if start_display initializes it to WINDOW_TAB_LINE_HEIGHT + WINDOW_HEADER_LINE_HEIGHT. >> + if (movement < 0) >> + { >> + while (it.current_y > movement) >> + { >> + last_y = it.current_y; >> + move_it_vertically_backward (&it, >> + abs (movement) + it.current_y); >> + >> + if (it.current_y == last_y) >> + break; >> + } >> + } >> + else >> + { >> + move_it_vertically (&it, movement); >> + } > I don't understand the different logic depending on the sign of > 'movement' (and didn't we agree to use a better name for it?). Sorry for forgetting that. I'll fix it ASAP. As for the logic, movement being negative means to move backwards from the specified buffer position, while it being positive means to move forwards. >> + it.current_y = (WINDOW_TAB_LINE_HEIGHT (w) >> + + WINDOW_HEADER_LINE_HEIGHT (w)); >> + start = clip_to_bounds (BEGV, IT_CHARPOS (it), ZV); >> + start_y = it.current_y; >> + } >> + else >> + { >> + /* Start at the beginning of the line containing FROM. Otherwise >> + IT.current_x will be incorrectly set to zero at some arbitrary >> + non-zero X coordinate. */ >> + reseat_at_previous_visible_line_start (&it); >> + it.current_x = it.hpos = 0; >> + if (IT_CHARPOS (it) != start) >> + move_it_to (&it, start, -1, -1, -1, MOVE_TO_POS); >> + } > And here: why a different initial value for it.current_y, depending on > how FROM was specified? It should be that way, as we subtract the tab line height and header line height from that value afterwards. Thanks.