From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#51658: [PATCH] Haiku port (again) Date: Sat, 20 Nov 2021 10:33:01 +0200 Message-ID: <83fsrrtef6.fsf@gnu.org> References: <87ee7surtv.fsf.ref@yahoo.com> <87ee7surtv.fsf@yahoo.com> <83mtmd43fa.fsf@gnu.org> <87ilx0yj52.fsf@yahoo.com> <83czn8424l.fsf@gnu.org> <87o86s41at.fsf@yahoo.com> <83tugk2iuy.fsf@gnu.org> <871r3n4jvd.fsf@yahoo.com> <835ysz2niq.fsf@gnu.org> <87sfw3w372.fsf@yahoo.com> <83zgq7x5zj.fsf@gnu.org> <87r1bjlf26.fsf@yahoo.com> <83wnlbuq7p.fsf@gnu.org> <877ddb6pvi.fsf@yahoo.com> <83ilwvuj3t.fsf@gnu.org> <875ysv58dz.fsf@yahoo.com> <87lf1q2kez.fsf@yahoo.com> <87lf1jqpg0.fsf@yahoo.com> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30264"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 51658@debbugs.gnu.org To: Po Lu Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Nov 20 09:34:10 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1moLp3-0007en-L8 for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 20 Nov 2021 09:34:09 +0100 Original-Received: from localhost ([::1]:39900 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1moLp2-0000Rz-5G for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 20 Nov 2021 03:34:08 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:60528) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1moLow-0000Rp-P7 for bug-gnu-emacs@gnu.org; Sat, 20 Nov 2021 03:34:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:58285) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1moLow-0007X9-Gf for bug-gnu-emacs@gnu.org; Sat, 20 Nov 2021 03:34:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1moLow-0006fN-8B for bug-gnu-emacs@gnu.org; Sat, 20 Nov 2021 03:34:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 20 Nov 2021 08:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51658 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 51658-submit@debbugs.gnu.org id=B51658.163739719125543 (code B ref 51658); Sat, 20 Nov 2021 08:34:02 +0000 Original-Received: (at 51658) by debbugs.gnu.org; 20 Nov 2021 08:33:11 +0000 Original-Received: from localhost ([127.0.0.1]:41598 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1moLo6-0006dv-UZ for submit@debbugs.gnu.org; Sat, 20 Nov 2021 03:33:11 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:59630) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1moLo1-0006dK-Vs for 51658@debbugs.gnu.org; Sat, 20 Nov 2021 03:33:08 -0500 Original-Received: from [2001:470:142:3::e] (port=60878 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1moLnw-000737-NC; Sat, 20 Nov 2021 03:33:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=MOyLy5w8ovYrFAtst8h5TnPAtvYXNx927LIkzYTztIc=; b=iQTvA+yGiSD7 IBidxbl8OrbCHZkhGzJB9duP3fLitxP/j4bTOQkPdJppfwOsaaxUX7RdD7PoG/dLyhOKfJBDb1r1G TjxBY8WXvpp8b22kVkwekPA/Y6WKXTHRHuPwmqu2LApBQZ1g19qfb+nFcENETqnCgEdgu9pMbixFS o0PCUvogW6hkWLs6AvmJoeV1/gVPZV074465lkcr3fwLArKg4hg8uhijCFwbQrIcy5rLrvOtpoEIS qC4O8Y+4EYpfa+WKVdlTV0XIuF1+1NRn19iD0uXsvAmFFKfd9SyBy6a6oSS+Mf2zW+ZgD0sfqGSCv HTwUu/rHT609HiAYpM2SsQ==; Original-Received: from [87.69.77.57] (port=3065 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1moLnw-0002Ca-Ch; Sat, 20 Nov 2021 03:33:00 -0500 In-Reply-To: <87lf1jqpg0.fsf@yahoo.com> (message from Po Lu on Sat, 20 Nov 2021 15:03:11 +0800) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:220461 Archived-At: > From: Po Lu > Cc: 51658@debbugs.gnu.org > Date: Sat, 20 Nov 2021 15:03:11 +0800 > > +The value of each variable can one of the symbols @code{command}, ^^^^^^^^^^^^^^^^^^^^^^ "can be one of the symbols" > + On Haiku, Emacs defaults to using the system tooltip mechanism. > +This usually leads to more responsive tooltips, but the tooltips will > +not be able to use advanced display features. If that is what you > +need, you can disable the use of system tooltips by setting the > +variable @code{haiku-use-system-tooltips} to nil. "If you need those features, customize the variable @code{haiku-use-system-tooltips} to the nil value, and Emacs will use its own implementation of tooltips." (And which advanced display features are those? Perhaps they are important enough to have this variable be nil by default? > + (@pxref{Tooltips,,, > +elisp, The Emacs Lisp Reference Manual}). This should be @xref and without the parens. Also, make sure you leave 2 spaces between sentences. > +@table @code > +@vindex haiku-use-system-tooltips > +@item haiku-use-system-tooltips > +This variable controls whether or not system tooltips will be used. > + > +When non-nil, tooltips are displayed by the Application Kit and not > +Emacs, and accordingly do not have a tooltip frame. As such, they are > +also unable to utilize any display properties. > +@end table Since you already explained what this does and mentioned the variable name, this @table seems redundant. Just move the @vindex entry to the above text. > + Two of these backends, @code{ftcr} and @code{ftcrfont} are identical ^^^^ "ftcr" or "ftfont"? Or maybe you meant ftcrfont and ftcrhb? > @@ -3143,6 +3155,9 @@ Raising and Lowering > below all other frames belonging to the same or a higher z-group as > @var{frame}. If @var{frame} is a child frame (@pxref{Child Frames}), > this lowers @var{frame} below all other child frames of its parent. > + > +@footnote{Lowering frames is not supported on Haiku, due to limitations > +imposed by the system.} @footnote generates a superscript number, so it should follow some text, presumably the last sentence before it. Please see how @footnote is used elsewhere in the manual. > Some window managers may refuse to restack windows. > + > +@footnote{Restacking frames is not supported on Haiku, due to limitations > +imposed by the system.} Likewise. > @@ -3272,6 +3290,12 @@ Child Frames > allowing them to be positioned so they do not obscure the parent frame > while still being visible themselves. > > +@footnote{On Haiku, child frames are only visible when a parent frame is > +active, owing to a limitation of the Haiku windowing system. Owing to > +the same limitation, child frames are only guaranteed to appear above > +their top-level parent; that is to say, the top-most frame in the > +hierarchy, which does not have a parent frame.} Likewise. > +** Emacs has been ported to the Haiku operating system. > +The configuration process should automatically detect and build for Haiku. > +There is also an optional window-system port to Haiku, which can be enabled > +by configuring Emacs with the option '--with-be-app', which will require > +the Haiku Application Kit development headers and a C++ compiler to be present > +on your system. If Emacs is not built with the option '--with-be-app', the > +resulting Emacs will only run in text-mode terminals. > + > ++++ > +*** Cairo drawing support has been enabled for Haiku builds. > +To enable Cairo support, ensure that the Cairo and FreeType development files > +are present on your system, and configure Emacs with '--with-be-cairo'. > + > +--- > +*** Double buffering is now enabled on the Haiku operating system. > +Unlike X, there is no compile-time option to enable or disable double-buffering. > +If you wish to disable double-buffering, change the frame parameter > +`inhibit-double-buffering' instead. > + The lines in these NEWS entries are too long, please use the default value of fill-column when you file them. > ** Emacs now installs the ".pdmp" file using a unique fingerprint in the name. > The file is typically installed using a file name akin to > "...dir/libexec/emacs/29.1/x86_64-pc-linux-gnu/emacs-.pdmp". > diff --git a/etc/PROBLEMS b/etc/PROBLEMS > index f506881a4b..c548ee9b36 100644 > --- a/etc/PROBLEMS > +++ b/etc/PROBLEMS > @@ -1022,6 +1022,15 @@ modern fonts are used, such as Noto Emoji or Ebrima. > The solution is to switch to a configuration that uses HarfBuzz as its > shaping engine, where these problems don't exist. > > +** On Haiku, some proportionally-spaced fonts display with artifacting. > + > +This is a Haiku bug: https://dev.haiku-os.org/ticket/17229, which can > +be remedied by using a different font that does not exhibit this > +problem, or by compiling Emacs with the FreeType font driver. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This would benefit from telling what configure option or run-time command-line arguments to use to do that. > (defun tooltip-show-help (msg) > "Function installed as `show-help-function'. > MSG is either a help string to display, or nil to cancel the display." > - (if (display-graphic-p) > + (if (and (display-graphic-p) > + (or (not (eq window-system 'haiku)) ;; On Haiku, there isn't a reliable way to show tooltips > + ;; above menus. > + (not (menu-or-popup-active-p)))) This seems to contradict what you wrote in the user manual about tooltip options? > + while (get_next_team_info (&cookie, &info) == B_OK) > + { > + lval = Fcons (make_fixnum (info.team), lval); > + } These braces are redundant. > diff --git a/src/sysdep.c b/src/sysdep.c > index 8eaee22498..67b6b2aa3d 100644 > --- a/src/sysdep.c > +++ b/src/sysdep.c > @@ -71,6 +71,10 @@ > # include > #endif > > +#ifdef HAIKU > +#include > +#endif Is this include still needed in sysdep.c?