ruby - Modify mode-compile.el til at håndtere MS-Windows-stier med indlejrede emner?

Indlæg af Hanne Mølgaard Plasc

Problem



Kan nogen foreslå en ændring af mode-compile.el, der får det til at fungere bedre på Windows? Mit specifikke problem er håndtering af stinavn, der indeholder emner. Jeg arbejder med kode i Ruby ved hjælp af 'GNU Emacs 22.2.1 (i386-mingw-nt5.1.2600) af 2008-03-26 på RELEASE' med mode-compile.el version: 2.29 (Sidst ændret: 2006/12/01 13:52:47)


Kommandolinjen genereret af mode-compile.el for at kompilere (køre) min buffer a.rb er dette:


c:/ruby ​​/bin \ ruby.exe -w c:/Dokumenter og indstillinger/William/My Documents/src/a.rb


Hvilket genererer denne fejl:


c:/ruby ​​/bin \ ruby.exe: Ingen sådan fil eller mappe - c:/Dokumenter (LoadError)


Dette virker fint:


c:/ruby ​​/bin \ ruby.exe -w 'c:/Dokumenter og indstillinger/William/My Documents/src/a.rb'


Som et arbejde kan jeg bare flytte mit bibliotekstræ, så stien ikke har indlejrede emner. Når man kigger på koden i mode-compile.el, ser det ud til, at en funktion allerede eksisterer for at tilføje citaterne, da jeg IKKE er dygtig i emacs-lisp, måske gør det faktisk noget helt andet (som bare tilføjer en næsten tom par af dobbelt citatmærker):


(hvis at-kompilere-fname
   (hvis mc - build-op-args
    (mc - build-output-args to-compile-fname)
      (concat '' til-compile-fname)
      )
   ''))))


mode-compile.el kommer fra her:
http://perso.tls.cena.fr/boubaker/distrib/mode-compile.el[5]


Tak på forhånd!


William

Bedste reference


Jeg har ikke tid til at teste dette virkelig, men det ser ud til mig, at funktionen mc--shell-compile skal opdateres. Filnavnet på bufferen udvindes af følgende linjer:


     (shfile  (or mc--remote-pathname (buffer-file-name)
                  (error "Compilation abort: Buffer \%s has no filename"
                         (buffer-name))))


rettelsen skal være at citere buffer-file-name:


     (shfile  (or mc--remote-pathname (shell-quote-argument buffer-file-name)
                  (error "Compilation abort: Buffer \%s has no filename"
                         (buffer-name))))


Kan du prøve at rapportere, tak?


Skål,
Daniel