Loading ...
Sorry, an error occurred while loading the content.

Re: Panther gVim

Expand Messages
  • Benji Fisher
    ... I cannot help there. ... You could make /usr/bin/vim a symbolic link to the executable in Vim.app . For example, if you keep Vim.app in /Applications ,
    Message 1 of 23 , Oct 21, 2003
    • 0 Attachment
      On Tue, Oct 21, 2003 at 02:35:34PM -0400, Ricardo SIGNES wrote:
      > * Benji Fisher <benji@...> [2003-10-21T13:59:05]
      > > On Tue, Oct 21, 2003 at 11:59:00AM -0400, Ricardo SIGNES wrote:
      > > > I compiled gVim (Vim.app) from CVS on Panther just a few days ago. I've
      > > > attached the output of :ver
      > >
      > > I am glad to hear it works OOTB. From your :version output, it looks
      > > as though you included Normal features; I usually compile Huge
      > > versions. The first report is that my version with -perl -python
      > > (compiled on Jaguar) also works on Panther, so we can stick with that
      > > for now. If you (or any other volunteer) can compile a version with
      > > +perl (and maybe also +python) that runs on Panther, I will be happy
      > > to post it at http://macvim.swdev.org/OSX/ .
      >
      > It compiled with huge features with no complaints. --enable-perlinterp
      > did not work and I don't use Perl in Vim, so I'm not sure where to begin
      > dealing with it.

      I cannot help there.

      > Another nice thing would be for `vim` to open the same binary as
      > Vim.app; I don't know enough about MacOS to know whether that's
      > possible.

      You could make /usr/bin/vim a symbolic link to the executable in
      Vim.app . For example, if you keep Vim.app in /Applications , then

      % sudo ln -s /Applications/Vim.app/Contents/MacOS/Vim /usr/bin/vim

      ought to do it. If you want to get rid of the old binary (and runtime
      files) you should also do the same with /usr/bin/vi . See the FAQ's at

      http://macvim.swdev.org/OSX/

      for similar suggestions.

      Of course, this will create problems with updating. What happens
      to those symbolic links if Apple decides to update the system vi[m] as
      part of Software Update 10.3.1.17 ?

      --Benji Fisher
    • Eugene Lee
      ... I prefer not to mess with system-installed stuff. A less destruction solution is to create a shell alias. A simple Bourne shell solution: $ alias vim
      Message 2 of 23 , Oct 21, 2003
      • 0 Attachment
        On Tue, Oct 21, 2003 at 04:54:24PM -0400, Benji Fisher wrote:
        : On Tue, Oct 21, 2003 at 02:35:34PM -0400, Ricardo SIGNES wrote:
        : >
        : > Another nice thing would be for `vim` to open the same binary as
        : > Vim.app; I don't know enough about MacOS to know whether that's
        : > possible.
        :
        : You could make /usr/bin/vim a symbolic link to the executable in
        : Vim.app . For example, if you keep Vim.app in /Applications , then
        :
        : % sudo ln -s /Applications/Vim.app/Contents/MacOS/Vim /usr/bin/vim

        I prefer not to mess with system-installed stuff. A less destruction
        solution is to create a shell alias. A simple Bourne shell solution:

        $ alias vim /Applications/Vim.app/Contents/MacOS/Vim


        --
        Eugene Lee
        eugene at anime dot net
      • Lars Duening
        ... On my machine I have created an oldfashioned /usr/local directory tree and added /usr/local/bin to my PATH - no interference with the system binaries, and
        Message 3 of 23 , Oct 21, 2003
        • 0 Attachment
          On Tuesday, October 21, 2003, at 02:54 PM, Benji Fisher wrote:

          > On Tue, Oct 21, 2003 at 02:35:34PM -0400, Ricardo SIGNES wrote:
          >
          >> Another nice thing would be for `vim` to open the same binary as
          >> Vim.app; I don't know enough about MacOS to know whether that's
          >> possible.
          >
          > You could make /usr/bin/vim a symbolic link to the executable in
          > Vim.app . For example, if you keep Vim.app in /Applications , then
          >
          > % sudo ln -s /Applications/Vim.app/Contents/MacOS/Vim /usr/bin/vim
          >
          > ought to do it.

          On my machine I have created an oldfashioned /usr/local directory tree
          and added /usr/local/bin to my PATH - no interference with the system
          binaries, and easy to back up, too.

          Cheers,
          Lars
          --
          Lars Duening; lars@...
          GPG Key: http://www.bearnip.com/lars/lars-duening.gpgkey
        • Bram Moolenaar
          ... Did this ever work for a Carbon version? I thought :gui only worked for X-Windows versions (Motif, GTK). I now tried :gui with the new version you
          Message 4 of 23 , Oct 23, 2003
          • 0 Attachment
            Benji Fisher wrote:

            > First problem:
            >
            > % ./Vim
            > :gui
            >
            > does not work. A gVim window opens, but the Terminal keeps focus and
            > still shows the vim window. Keyboard input goes to the Terminal window
            > and vim commands do not affect either window. I have to ctrl-z (or
            > switch to another Terminal window) and kill the process.

            Did this ever work for a Carbon version? I thought ":gui" only worked
            for X-Windows versions (Motif, GTK).

            I now tried ":gui" with the new version you uploaded. It works, but Vim
            doesn't fork, thus the terminal doesn't go back to the shell. I think
            the forking was disabled in the past. Perhaps it does work in this
            Carbon version now.

            > Second problem (minor):
            >
            > The first time I tried 'make install', Stuffit Expander was too
            > slow. I got a helpful message, but it was just barely visible in the
            > Terminal window. I suggest moving the lines
            >
            > @echo
            > @echo "--------------------"
            > @echo "If this fails, run make install again after StuffIt Expander quits."
            > @echo "--------------------"
            > @echo
            >
            > to the 'install_macosx' target, or maybe the 'bundle-rsrc' target.

            Can't we add a small shell script that hangs around until the files that
            are to be unpacked exist?

            while test ! -f some_file; do
            sleep 1
            done

            > Third problem:
            >
            > I tried enabling perl, python, ruby, and tcl (why not?) in the
            > Makefile. I get warnings about precompiled headers, which I have long
            > gnored, and also

            Those precompiled header warnings are irritating, especially since I
            can't find a way to recompile the headers...

            > gcc: unrecognized option '-pthread'
            >
            > and then ruby.c does not compile. Removing Ruby, I still get the gcc
            > warning above and then a problem in linking:
            >
            > ld: can't locate file for: -ldl

            This is probably caused by one of the configure checks that include
            specific compile arguments. This is tricky, but there is no other way
            to obtain those compiler arguments. The configure checks could be made
            more robust. A language should be disabled when compiling/linking fails
            after adding compiler flags for the language.

            > Other things work well: 'make test' runs smoothly, and I can drag
            > a file icon onto the Vim icon in the Dock. I think I will not have time
            > today to try Perl, Python, Tcl, and Ruby separately, but I will try to
            > get one or two working binaries uploaded before I quit for the day.

            I'm glad we are making progress. And I haven't heard serious problems
            with the new way of producing the Carbon version, this seems to be the
            right way to go.

            --
            Overflow on /dev/null, please empty the bit bucket.

            /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
            /// Creator of Vim - Vi IMproved -- http://www.Vim.org \\\
            \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
            \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
          • Eric Y. Kow
            ... good point... the file we want is gui_mac.rsrc. There s probably some resource-fork business that I don t understand (which is the reason why we can t just
            Message 5 of 23 , Oct 23, 2003
            • 0 Attachment
              On Thu, Oct 23, 2003 at 14:54:39 +0200, Bram Moolenaar Bram-at-moolenaar.net |vim-mac@.../1.0-Allow| wrote:
              > > @echo "--------------------"
              > > @echo "If this fails, run make install again after StuffIt Expander quits."
              > > @echo "--------------------"

              > Can't we add a small shell script that hangs around until the files that
              > are to be unpacked exist?
              >
              > while test ! -f some_file; do
              > sleep 1
              > done

              good point... the file we want is gui_mac.rsrc.
              There's probably some resource-fork business that I don't understand
              (which is the reason why we can't just supply gui_mac.rsrc) but this is
              at least better than nothing.

              --
              Eric Kow http://www.loria.fr/~kow
              PGP Key ID: 08AC04F9 Merci de corriger mon français.
            • Bram Moolenaar
              ... OK, please try this: gui_mac.rsrc: open os_mac.rsr.hqx @while test ! -f gui_mac.rsrc; do sleep 1; done -- ARTHUR: Well, I can t just call you `Man .
              Message 6 of 23 , Oct 24, 2003
              • 0 Attachment
                Eric Y. Kow wrote:

                > On Thu, Oct 23, 2003 at 14:54:39 +0200, Bram Moolenaar Bram-at-moolenaar.ne=
                > t |vim-mac@.../1.0-Allow| wrote:
                > > > @echo "--------------------"
                > > > @echo "If this fails, run make install again after StuffIt Expa=
                > nder quits."
                > > > @echo "--------------------"
                >
                > > Can't we add a small shell script that hangs around until the files that
                > > are to be unpacked exist?
                > >=20
                > > while test ! -f some_file; do
                > > sleep 1
                > > done
                >
                > good point... the file we want is gui_mac.rsrc.
                > There's probably some resource-fork business that I don't understand
                > (which is the reason why we can't just supply gui_mac.rsrc) but this is
                > at least better than nothing.

                OK, please try this:

                gui_mac.rsrc:
                open os_mac.rsr.hqx
                @while test ! -f gui_mac.rsrc; do \
                sleep 1; \
                done


                --
                ARTHUR: Well, I can't just call you `Man'.
                DENNIS: Well, you could say `Dennis'.
                ARTHUR: Well, I didn't know you were called `Dennis.'
                DENNIS: Well, you didn't bother to find out, did you?
                The Quest for the Holy Grail (Monty Python)

                /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                /// Creator of Vim - Vi IMproved -- http://www.Vim.org \\\
                \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
                \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
              • Stephen Riehm
                Hi Bram, Eric, Just a quick note: opening .hqx files can have nasty side effects... I had real problems with that line because I ve got stuffit expander
                Message 7 of 23 , Oct 24, 2003
                • 0 Attachment
                  Hi Bram, Eric,

                  Just a quick note: opening .hqx files can have nasty side effects...
                  I had real problems with that line because I've got stuffit expander
                  configured to always expand onto the desktop (I only ever expand stuff
                  I've just downloaded... and having it expand on the desktop means I
                  don't lose track of the things I haven't fully tried out yet - I move
                  them into a proper folder (or trash) after testing)

                  Is there was to open the .hqx file in such a way that it always expands
                  into the current directory?
                  (ie: some special command line arg to override the user settings?)

                  Cheers,

                  Steve

                  On Freitag, Oktober 24, 2003, at 12:47 Uhr, Bram Moolenaar wrote:

                  >
                  > Eric Y. Kow wrote:
                  >
                  >> On Thu, Oct 23, 2003 at 14:54:39 +0200, Bram Moolenaar
                  >> Bram-at-moolenaar.ne=
                  >> t |vim-mac@.../1.0-Allow| wrote:
                  >>>> @echo "--------------------"
                  >>>> @echo "If this fails, run make install again after StuffIt
                  >>>> Expa=
                  >> nder quits."
                  >>>> @echo "--------------------"
                  >>
                  >>> Can't we add a small shell script that hangs around until the files
                  >>> that
                  >>> are to be unpacked exist?
                  >>> =20
                  >>> while test ! -f some_file; do
                  >>> sleep 1
                  >>> done
                  >>
                  >> good point... the file we want is gui_mac.rsrc.
                  >> There's probably some resource-fork business that I don't understand
                  >> (which is the reason why we can't just supply gui_mac.rsrc) but this
                  >> is
                  >> at least better than nothing.
                  >
                  > OK, please try this:
                  >
                  > gui_mac.rsrc:
                  > open os_mac.rsr.hqx
                  > @while test ! -f gui_mac.rsrc; do \
                  > sleep 1; \
                  > done
                  >
                  >
                  > --
                  > ARTHUR: Well, I can't just call you `Man'.
                  > DENNIS: Well, you could say `Dennis'.
                  > ARTHUR: Well, I didn't know you were called `Dennis.'
                  > DENNIS: Well, you didn't bother to find out, did you?
                  > The Quest for the Holy Grail (Monty
                  > Python)
                  >
                  > /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net
                  > \\\
                  > /// Creator of Vim - Vi IMproved -- http://www.Vim.org
                  > \\\
                  > \\\ Project leader for A-A-P -- http://www.A-A-P.org
                  > ///
                  > \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html
                  > ///
                  >
                  >
                  Steve
                • Daniel Sandler
                  ... That s for sure. Is there any particular reason that BinHex is being used to encapsulate these Mac resources, rather than something a little easier to
                  Message 8 of 23 , Oct 24, 2003
                  • 0 Attachment
                    > Just a quick note: opening .hqx files can have nasty side effects...

                    That's for sure.

                    Is there any particular reason that BinHex is being used to encapsulate
                    these Mac resources, rather than something a little easier to manipulate
                    from make or jam? (That is, something that can be used with blocking
                    shell tools?) I have a couple of ideas on how this might be done:


                    Suggestion 1: Use the OS X pseudo-file spec to manipulate resources

                    Background: Apple's implementation of POSIX file ops for resource-fork
                    filesystems seems to provide some pseudo-file paths allowing direct
                    access to the different forks of a file as separate file descriptors.
                    (There appear to be some relevant #defines in sys/paths.h .)

                    Usage: To get started, split gui_mac.rsrc into data and resource
                    forks:

                    cat gui_mac.rsrc/..namedfork/rsrc > os_mac.rsr.rsrcfork
                    cat gui_mac.rsrc/..namedfork/data > os_mac.rsr.datafork

                    At this point, you have two files containing only data forks.
                    Therefore, they ought to be safe to add to CVS:

                    cvs add os_mac.rsr.{rsrc,data}fork

                    At build time, reverse the procedure:

                    # fictitious Makefile excerpt
                    gui_mac.rsrc:
                    touch gui_mac.rsrc # need to have the file present first
                    cat os_mac.rsr.rsrcfork > gui_mac.rsrc/..namedfork/rsrc
                    cat os_mac.rsr.datafork > gui_mac.rsrc/..namedfork/data

                    Downside: I believe the ..namedfork spec was introduced in OS X 10.2,
                    so you might be limiting the platforms on which vim can be built.

                    Another downside: anything I find in a header file delimited by #ifdef
                    __APPLE_API_PRIVATE sort of gives me the creeps. It doesn't seem to
                    be a well-documented API, and so could go away at any time.
                    Information on this API is scarce and sometimes inconsistent; the most
                    authoritative note I've seen (read: "comes from an @... email
                    address") is here: http://nntp.x.perl.org/group/perl.macosx/4260 .


                    Suggestion 2: use DeRez/Rez, part of the OS X developer tools

                    This is what I used to store resources in CVS for my OS X projects
                    before I learned about the ..namedfork trick.

                    Usage: once you have a gui_mac.rsrc you like, use DeRez to create a
                    gui_mac_static.r (since gui_mac.r already exists to include dynamic
                    stuff like VIM_VERSION_*) and check the new .r file into CVS. Use
                    $REZ from the Makefile to reconstitute gui_mac.rsrc when needed.


                    I hope this is helpful; I apologize for not submitting proper patches,
                    but I'm not set up to build OS X vim at the moment...

                    -dan, re-engaging his lurking device
                  • dan sandler
                    ... That s for sure. Is there any particular reason that BinHex is being used to encapsulate these Mac resources, rather than something a little easier to
                    Message 9 of 23 , Oct 24, 2003
                    • 0 Attachment
                      > Just a quick note: opening .hqx files can have nasty side effects...

                      That's for sure.

                      Is there any particular reason that BinHex is being used to encapsulate
                      these Mac resources, rather than something a little easier to manipulate
                      from make or jam? (That is, something that can be used with blocking
                      shell tools?) I have a couple of ideas on how this might be done:


                      Suggestion 1: Use the OS X pseudo-file spec to manipulate resources

                      Background: Apple's implementation of POSIX file ops for resource-fork
                      filesystems seems to provide some pseudo-file paths allowing direct
                      access to the different forks of a file as separate file descriptors.
                      (There appear to be some relevant #defines in sys/paths.h .)

                      Usage: To get started, split gui_mac.rsrc into data and resource
                      forks:

                      cat gui_mac.rsrc/..namedfork/rsrc > os_mac.rsr.rsrcfork
                      cat gui_mac.rsrc/..namedfork/data > os_mac.rsr.datafork

                      At this point, you have two files containing only data forks.
                      Therefore, they ought to be safe to add to CVS:

                      cvs add os_mac.rsr.{rsrc,data}fork

                      At build time, reverse the procedure:

                      # fictitious Makefile excerpt
                      gui_mac.rsrc:
                      touch gui_mac.rsrc # need to have the file present first
                      cat os_mac.rsr.rsrcfork > gui_mac.rsrc/..namedfork/rsrc
                      cat os_mac.rsr.datafork > gui_mac.rsrc/..namedfork/data

                      Downside: I believe the ..namedfork spec was introduced in OS X 10.2,
                      so you might be limiting the platforms on which vim can be built.

                      Another downside: anything I find in a header file delimited by #ifdef
                      __APPLE_API_PRIVATE sort of gives me the creeps. It doesn't seem to
                      be a well-documented API, and so could go away at any time.
                      Information on this API is scarce and sometimes inconsistent; the most
                      authoritative note I've seen (read: "comes from an @... email
                      address") is here: http://nntp.x.perl.org/group/perl.macosx/4260 .


                      Suggestion 2: use DeRez/Rez, part of the OS X developer tools

                      This is what I used to store resources in CVS for my OS X projects
                      before I learned about the ..namedfork trick.

                      Usage: once you have a gui_mac.rsrc you like, use DeRez to create a
                      gui_mac_static.r (since gui_mac.r already exists to include dynamic
                      stuff like VIM_VERSION_*) and check the new .r file into CVS. Use
                      $REZ from the Makefile to reconstitute gui_mac.rsrc when needed.


                      I hope this is helpful; I apologize for not submitting proper patches,
                      but I'm not set up to build OS X vim at the moment...

                      -dan, re-engaging his lurking device
                    • Gregory Seidman
                      On Fri, Oct 24, 2003 at 03:48:02PM -0700, dan sandler wrote: [...] } Suggestion 1: Use the OS X pseudo-file spec to manipulate resources [...] } cat
                      Message 10 of 23 , Oct 24, 2003
                      • 0 Attachment
                        On Fri, Oct 24, 2003 at 03:48:02PM -0700, dan sandler wrote:
                        [...]
                        } Suggestion 1: Use the OS X pseudo-file spec to manipulate resources
                        [...]
                        } cat gui_mac.rsrc/..namedfork/rsrc > os_mac.rsr.rsrcfork
                        } cat gui_mac.rsrc/..namedfork/data > os_mac.rsr.datafork
                        [...]
                        } At build time, reverse the procedure:
                        }
                        } # fictitious Makefile excerpt
                        } gui_mac.rsrc:
                        } touch gui_mac.rsrc # need to have the file present first
                        } cat os_mac.rsr.rsrcfork > gui_mac.rsrc/..namedfork/rsrc
                        } cat os_mac.rsr.datafork > gui_mac.rsrc/..namedfork/data

                        Or, very slightly easier:

                        gui_mac.rsrc:
                        cp os_mac.rsr.datafork gui_mac.rsrc
                        cat os_mac.rsr.rsrcfork > gui_mac.rsrc/..namedfork/rsrc

                        } Downside: I believe the ..namedfork spec was introduced in OS X 10.2,
                        } so you might be limiting the platforms on which vim can be built.

                        It works on my 10.1 system. Can't speak for 10.0, though.

                        [...]
                        --Greg
                      • Eric Y. Kow
                        Folks, Thanks for the discussion. It s been educational. ... As a matter of personal taste, I d avoid this kind of stuff. ... I like this approach much
                        Message 11 of 23 , Oct 25, 2003
                        • 0 Attachment
                          Folks,

                          Thanks for the discussion. It's been educational.

                          On Fri, Oct 24, 2003 at 15:48:02 -0700, dan sandler dsandler-at-dsandler.org |vim-mac@.../1.0-Allow| wrote:
                          > Another downside: anything I find in a header file delimited by #ifdef
                          > __APPLE_API_PRIVATE sort of gives me the creeps. It doesn't seem to

                          As a matter of personal taste, I'd avoid this kind of stuff.

                          > Suggestion 2: use DeRez/Rez, part of the OS X developer tools
                          ...
                          > Usage: once you have a gui_mac.rsrc you like, use DeRez to create a
                          > gui_mac_static.r (since gui_mac.r already exists to include dynamic
                          > stuff like VIM_VERSION_*) and check the new .r file into CVS. Use
                          > $REZ from the Makefile to reconstitute gui_mac.rsrc when needed.

                          I like this approach much better! Especially now that it has been
                          blessed by somebody who presumably has clue what's going on :-)

                          Is deRez'ing gui_mac.rsrc basically equivilant to de-compiling it?
                          If so, would it be too onerous to re-write gui_mac_static.r by hand, or
                          find the guy that wrote the original? If we're going to have some kind
                          of source around, it might as well be readable, eh?

                          --
                          Eric Kow http://www.loria.fr/~kow
                          PGP Key ID: 08AC04F9 Merci de corriger mon français.
                        • Dany St-Amant
                          Le vendredi, 24 oct 2003, à 17:31 Canada/Eastern, Daniel Sandler a ... As I always decode it before hand, I never saw an issue. Beside Muraoka s suggestion,
                          Message 12 of 23 , Oct 26, 2003
                          • 0 Attachment
                            Le vendredi, 24 oct 2003, à 17:31 Canada/Eastern, Daniel Sandler a
                            écrit :

                            >> Just a quick note: opening .hqx files can have nasty side effects...
                            >
                            > That's for sure.
                            >
                            > Is there any particular reason that BinHex is being used to encapsulate
                            > these Mac resources, rather than something a little easier to
                            > manipulate
                            > from make or jam? (That is, something that can be used with blocking
                            > shell tools?) I have a couple of ideas on how this might be done:

                            As I always decode it before hand, I never saw an issue. Beside
                            Muraoka's
                            suggestion, one could possible use an AppleScript as Stuffit Expander
                            accept
                            a destination folder through AppleScript.

                            > Suggestion 1: Use the OS X pseudo-file spec to manipulate resources

                            No can do. This will not work on the pre-MacOS X.

                            > Suggestion 2: use DeRez/Rez, part of the OS X developer tools

                            This should work fine as both MPW and old CodeWarrior version
                            supported Rez.

                            > Usage: once you have a gui_mac.rsrc you like, use DeRez to create a
                            > gui_mac_static.r (since gui_mac.r already exists to include dynamic
                            > stuff like VIM_VERSION_*) and check the new .r file into CVS. Use
                            > $REZ from the Makefile to reconstitute gui_mac.rsrc when needed.

                            One file should be enough as the current gui_mac.r was extracted from
                            the original gui_mac.rsrc to properly propagate the version number.

                            Dany
                          Your message has been successfully submitted and would be delivered to recipients shortly.