emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs pretest 28.0.90 is out


From: Eli Zaretskii
Subject: Re: Emacs pretest 28.0.90 is out
Date: Fri, 10 Dec 2021 16:26:27 +0200

> From: Po Lu <luangruo@yahoo.com>
> Cc: emacs-devel@gnu.org
> Date: Fri, 10 Dec 2021 21:44:48 +0800
> 
> I got the MS-DOS port to work.  Everything seems to run normally, but
> someone might need to run it under a DOS machine (as opposed to the
> NTVDM) to be sure.

That someone isn't myself, as I don't have a DOS machine.

How did you test the build?  What commands did you try?

My "standard minimum" set of tests for the DOS port is:

  . Visit a couple of files in different major modes and make sure
    there're no error messages
  . Type "C-x" and verify that the "C-x-" prompt appears after a
    second of delay
  . Type "M-x display-time-mode RET" and verify that Emacs displays
    time correctly, updating it every minute
  . Click on the menu bar and verify that menus work and display with
    correct colors
  . Move the mouse over the mode line and verify that it is
    mouse-sensitive, and help-echo is displayed in the echo-area
  . "C-h i" and verify that the help-echo for the menu items works
    when you move the mouse above them, mouse clicks on the header
    line work, and non-ASCII characters in the manual are correctly
    replaced with their ASCII equivalents
  . "M-x compile" to compile some simple C program with a syntax
    error, and verify that the *Compilation* buffer pops up with the
    error message(s), the exit code is correctly reported, and
    clicking on the message displays the offending source line
  . "M-x customize-variable", select some variable, and verify that
    the drop-down menus in the Custom buffer work
  . C-z, verify that you are dropped to a subordinate shell, invoke
    some shell command, then type "exit RET" to verify that you are
    back in Emacs
  
> If you have no further comments (and it doesn't break the build on
> non-DOS platforms), I would like to install the following change on the
> Emacs 28 branch (and hopefully get it to work on master as well: the DOS
> port will probably not work there either):

Thanks, see the comments below.

> --- a/msdos/sed1v2.inp
> +++ b/msdos/sed1v2.inp
> @@ -55,6 +55,10 @@ s/ *@LIBJPEG@//
>  s/ *@LIBPNG@//
>  s/ *@LIBGIF@//
>  s/ *@LIBXPM@//
> +/^HAVE_NATIVE_COMP *=/s/@HAVE_NATIVE_COMP@//
> +/^HAVE_PDUMPER *=/s/@HAVE_PDUMPER@//

These two should be replaced with "no", not with empty values, I
think.

> +/^JSON_CFLAGS *=/s/@JSOB_CFLAGS@//
> +/^JSON_LIBS *=/s/@JSOB_LIBS@//

Typos: should be JSON_CFLAGS and JSON_LIBS.

> +/^JSON_CFLAGS *=/s/@JSON_CFLAGS@//
> +/^JSON_LIBS *=/s/@JSON_LIBS@//
> +/^JSON_CFLAGS *=/s/@JSON_CFLAGS@//
> +/^JSON_LIBS *=/s/@JSON_LIBS@//

These should be redundant once you fix the typos above.

> +OMIT_GNULIB_MODULE_crypto\/md5 = true

Don't we need md5?  Why are you omitting it?

> +ifneq ($(MSDOS_OBJ),)
> +temacs$(EXEEXT): $(LIBXMENU) $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(EMACSRES) \
> +  $(charsets) $(charscript) ${emoji-zwj} $(MAKE_PDUMPER_FINGERPRINT)
> +     $(AM_V_CCLD)$(CC) -o $@ \
> +       $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \
> +       $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(W32_RES_LINK) $(LIBES)
> +     $(MKDIR_P) $(etc)
> +else
>  ## We have to create $(etc) here because init_cmdargs tests its
>  ## existence when setting Vinstallation_directory (FIXME?).
>  ## This goes on to affect various things, and the emacs binary fails

Couldn't you use the original recipe by a trivial editing (it seems
all you need is to replace $@.tmp with $@?), instead of adding an
ifdef?  Come to think of that, why not use the original recipe without
any changes, as it moves $@.tmp to $@ after the link succeeds?

> +int
> +fchmodat (int fd, const char *path, mode_t mode, int flags)
> +{
> +  if (fd != AT_FDCWD)
> +    {
> +      if (strlen (dir_pathname) + strlen (path) + 1 >= MAXPATHLEN)
> +     {
> +       errno = ENAMETOOLONG;
> +       return -1;
> +     }
> +    }
> +
> +  return 0;
> +}

This returns zero without doing anything, why?  I think it should call
chmod when fd == AT_FDCWD.

> +int
> +futimens (int fd, const struct timespec times[2])
> +{
> +  /* TODO */
> +  return 0;
> +}
> +
> +int
> +utimensat (int dirfd, const char *pathname,
> +        const struct timespec times[2], int flags)
> +{
> +  /* TODO */
> +  return 0;
> +}

What about these TODOs?

Thanks a lot for working on this.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]