emacs-devel
[Top][All Lists]
Advanced

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

Can't build latest emacs on MSW + CRLF display issue


From: Vincent Belaïche
Subject: Can't build latest emacs on MSW + CRLF display issue
Date: Sun, 25 Aug 2013 13:52:53 +0200

Hello,

I have been trying to build the latest emacs on MSWindowsXP + MinGW and
I came across the following issues:

- during the build I get the following error message

In toplevel form:
url/url-proxy.el:24:1:Error: Symbol's function definition is void: cl-member


- during the make-install I get the following error message

gcc -o oo-spd/i386/profile.exe  -gdwarf-2 -g3    oo-spd/i386/profile.o 
../lib/oo-spd/i386/libgnu.a oo-spd/i386/ntlib.o   -ladvapi32
mingw32-make.exe[1]: Leaving directory 
`C:/Programme/GNU/installation/emacs-install/emacs/trunk/lib-src'
mingw32-make.exe[1]: *** No rule to make target 
`../lisp/international/mule.elc', needed by `DOC'.  Stop.
mingw32-make.exe: *** [all-other-dirs-gmake] Error 2


Anyway, the build has gone far enough so that I have an emacs.exe with
the latest source, and it confirmed a problem which I had with my
previous build, the display of ^M at ends of lines seems buggy:

Here are two pictures:

http://savannah.gnu.org/bugs/download.php?file_id=28919
http://savannah.gnu.org/bugs/download.php?file_id=28920

Both pictures concern visiting info files, but the first one (cr.info)
has the ^M hidden, and the second one (bbdb.info) has the ^M shown.

My feeling is that there is some inconsistency, but maybe I
misunderstood the criterion that triggers ^M hiding.

Both info files have consistent CRLF endings which I checked with the
attached eol_status.cpp tool.

I must say also that I met a problem on bbdb.info which then I could
never reproduce: at some point of time it was displayed w/o the ^M at
for almost the whole file except in the last few tens lines where the ^M
endings were displayed.

VBR,
   Vincent.

#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
using namespace std;


int main(int ac,char const* av[])
{
  if(ac < 2){
        cerr << "Usage: eol_status [FILE]";
        return -1;
  }
  ifstream in(av[1],ios_base::binary);
  if(!in.is_open()){
        cerr << "Can't open file ``"<<av[1]<<"''\n";
        return -2;
  }

  int prev_char = EOF;
  int cur_char;

  int cr_count = 0;
  int lf_count = 0;
  int crlf_count = 0;
  while((cur_char = in.get()) != EOF){
        if(cur_char == 10){
          if(prev_char == 13)
                ++crlf_count;
          else
                ++lf_count;
    }
        else if(prev_char == 13)
      ++cr_count;
        prev_char = cur_char;
  }
  if(prev_char == 13)
        ++cr_count;

  if(cr_count != 0 && lf_count == 0 && crlf_count == 0)
        cout << cr_count <<" ends of line are in CR\n";
  else if(cr_count == 0 && lf_count != 0 && crlf_count == 0)
        cout << lf_count <<" ends of line are in LF\n";
  else if(cr_count == 0 && lf_count == 0 && crlf_count != 0)
        cout << crlf_count <<" ends of line are in CRLF\n";
  else  if(cr_count == 0 && lf_count == 0 && crlf_count == 0)
        cout << "Zero end of line\n";
  else
        cout << "Inconsistent end of lines:\n\tCR count   = "<<cr_count
                 << "\n\tLF count   = "<<lf_count
                 << "\n\tCRLF count = "<<crlf_count
                 << "\n";

  return 0;
}

reply via email to

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