• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

I want to import single-spaced code

 
Ranch Hand
Posts: 694
Mac OS X Eclipse IDE Firefox Browser
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
When I receive source code from other programmers of from some examples that I download (such as the examples from the "Core Java" books, the code is double-spaced when I open the file in Eclipse.

I imagine that the problem might be that DOS/Windows uses a carriage-return and a line-feed to terminate a line and Unix (including Mac OS X which I''m using), uses a single line-feed to terminate each line.

Will someone do me the favor of telling me how to open .java files that I get from other people and have them single-spaced so that I don't have to go through the entire file and take out all of the extra blank lines?
 
author and jackaroo
Posts: 12200
280
Mac IntelliJ IDE Firefox Browser Oracle C++ Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Kaydell Leavitt:
I imagine that the problem might be that DOS/Windows uses a carriage-return and a line-feed to terminate a line and Unix (including Mac OS X which I''m using), uses a single line-feed to terminate each line.



I don't think that's the problem, but unfortunately I don't know what the solution is.

I created a simple "Hello, world" program on my Mac, and forced it to be in DOS text format.

When I edit the source file using "vim Hello.java", I get:
So I can see on the status line that it recognized this as a DOS file and did an auto-convert for me.

If I forcibly tell vim not to auto-convert for me by typing "vim -b Hello.java", I get:
Now I can see a representation of all the carriage returns (the ^M which corresponds to ctrl-M) at the end of each line.

More importantly, when I load this DOS file into Eclipse on my Mac, it handles the carriage returns perfectly - I see the file single spaced.

Anyway - if the problem was the carriage returns, then you could remove them while in the vi editor by typing ":%s/^M//g" (minus the quotes of course). To type the control-M, you would actually have to type control-V (to specify that the next character should be used verbose - no translation) and then type control-M).

Alternatively, you could do the same thing from the command line. Something like "sed 's/^M//g' Hello.java > Hello2.java" would do the trick (again, not typing the double quotes). You could easily script this to work with all the files you have to convert rather than do them manually.

Alternatively, if you have Fink installed, you can use it to easily install the "dosunix" package, which describes itself as:

dosunix
Converts DOS text files to unix text format

Installed:None
Unstable:None
Stable:1.0.13-1
Binary:1.0.13-1

DosUnix is made up of three programs: - dosunix, which creates a copy of a DOS text file
in Unix text format.
- unixdos, which creates a copy of a Unix text file
in DOS text format.
- chktxt, which inspects a given text file to determine
whether it is in DOS text format or Unix text format.

Web site: http://dosunix.sourceforge.net

Maintainer: None <fink-devel@lists.sourceforge.net>



Unfortunately, while I have given a number of solutions to your question of how to convert the files, I doubt that I have solved your problem, as Eclipse should handle the files without problem.

One thing you could try is taking a look at one of the files in byte format. For example:
od provides octal dumps, which personally I find very trying . Fortunately it does far more than that - for example, the -a flag tells it to still spit everything out byte by byte, but give ascii equivalents for everything. So it is easy for me to visually verify that this file does have both carriage returns and newlines.

Perhaps you could run this command on one of your files and determine what it is that is causing the problem?

Some examples I can think of:
  • The file is actually double spaced (why, I don't know)
  • The file has mixed formatting - some lines only have line feeds, some have both carriage return and line feed. Most editors wont know what the safe thing to do is in that situation, so they default to assuming you want everything verbose
  • The file has newlines followed by carriage returns (I think this was old OSX format, or was it VMS - it is too long since I had to deal with that format).

  • Regards, Andrew
    [ March 30, 2008: Message edited by: Andrew Monkhouse ]
     
    Kaydell Leavitt
    Ranch Hand
    Posts: 694
    Mac OS X Eclipse IDE Firefox Browser
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Thanks. That give me a lot of things to try

    -- Kaydell
     
    author
    Posts: 14112
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    As a workaround, you can configure the Eclipse code formatter to remove superfluous empty lines.
     
    Saloon Keeper
    Posts: 27752
    196
    Android Eclipse IDE Tomcat Server Redhat Java Linux
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Eclipse is pretty intelligent about the DOS/Unix/Mac end-of-line issues. Generally, it'll understand them all and keep the files as it received them. There's a menu option to alter that on a per-file basis.

    It's possible that the offending files were simply malformatted when they were prepared for publication. If you could do a binary dump of them, it might show what's wrong.

    If you do routinely have some sort of issue, you might want to use one of the Linux text utilities to clean them up (if you're running cygwin under Windows, the same utilities can be used). Or, just write a simple Java application to toss out the extra lines.
     
    Kaydell Leavitt
    Ranch Hand
    Posts: 694
    Mac OS X Eclipse IDE Firefox Browser
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Thanks for all of the help.

    I think that the problem is that I have the .java extension associated with the Mac's XCode IDE so when I open Java source files, they open in XCode. Then I was copying and pasting into Eclipse. This is where the problem happens.

    Now, If I open the original Java source-files in BBEdit and then copy and paste into Eclipse, there is no double-spacing. This works, but it seems like I should learn how to import .java files directly into Eclipse. I think that this would be using the "Import" menu-item in Eclipse.
     
    Don't get me started about those stupid light bulbs.
    reply
      Bookmark Topic Watch Topic
    • New Topic