Skip to content

Commit ddd892d

Browse files
committed
fixup! Avoid illegal filenames when building Documentation on NTFS
The problem this patch tried to solve is that `+` is not a valid part of a file name on FAT file systems, so it won't work in general. In practice, it still will work, at least for building Git for Windows, because the MSYS2 runtime uses a trick inherited from Cygwin to handle file names that would be illegal: the characters are simply mapped into a private Unicode page. This patch was soundly rejected on the Git mailing list (see gitgitgadget#216 for details), in particular after this developer figured out that `+` is actually a valid file name character on NTFS. So let's drop it from Git for Windows' patch thicket. Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 32a748d commit ddd892d

File tree

1 file changed

+44
-44
lines changed

1 file changed

+44
-44
lines changed

Documentation/Makefile

+44-44
Original file line numberDiff line numberDiff line change
@@ -297,9 +297,9 @@ docdep_prereqs = \
297297
cmd-list.made $(cmds_txt)
298298

299299
doc.dep : $(docdep_prereqs) $(wildcard *.txt) $(wildcard config/*.txt) build-docdep.perl
300-
$(QUIET_GEN)$(RM) $@.new $@ && \
301-
$(PERL_PATH) ./build-docdep.perl >$@.new $(QUIET_STDERR) && \
302-
mv $@.new $@
300+
$(QUIET_GEN)$(RM) $@+ $@ && \
301+
$(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \
302+
mv $@+ $@
303303

304304
-include doc.dep
305305

@@ -344,8 +344,8 @@ GIT-ASCIIDOCFLAGS: FORCE
344344
fi
345345

346346
clean:
347-
$(RM) *.xml *.xml.new *.html *.html.new *.1 *.5 *.7
348-
$(RM) *.texi *.texi.new *.texi.new.new git.info gitman.info
347+
$(RM) *.xml *.xml+ *.html *.html+ *.1 *.5 *.7
348+
$(RM) *.texi *.texi+ *.texi++ git.info gitman.info
349349
$(RM) *.pdf
350350
$(RM) howto-index.txt howto/*.html doc.dep
351351
$(RM) technical/*.html technical/api-index.txt
@@ -355,14 +355,14 @@ clean:
355355
$(RM) GIT-ASCIIDOCFLAGS
356356

357357
$(MAN_HTML): %.html : %.txt asciidoc.conf asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
358-
$(QUIET_ASCIIDOC)$(RM) $@.new $@ && \
359-
$(TXT_TO_HTML) -d manpage -o $@.new $< && \
360-
mv $@.new $@
358+
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
359+
$(TXT_TO_HTML) -d manpage -o $@+ $< && \
360+
mv $@+ $@
361361

362362
$(OBSOLETE_HTML): %.html : %.txto asciidoc.conf asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
363-
$(QUIET_ASCIIDOC)$(RM) $@.new $@ && \
364-
$(TXT_TO_HTML) -o $@.new $< && \
365-
mv $@.new $@
363+
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
364+
$(TXT_TO_HTML) -o $@+ $< && \
365+
mv $@+ $@
366366

367367
manpage-base-url.xsl: manpage-base-url.xsl.in
368368
$(QUIET_GEN)sed "s|@@MAN_BASE_URL@@|$(MAN_BASE_URL)|" $< > $@
@@ -372,14 +372,14 @@ manpage-base-url.xsl: manpage-base-url.xsl.in
372372
$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
373373

374374
%.xml : %.txt asciidoc.conf asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
375-
$(QUIET_ASCIIDOC)$(RM) $@.new $@ && \
376-
$(TXT_TO_XML) -d manpage -o $@.new $< && \
377-
mv $@.new $@
375+
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
376+
$(TXT_TO_XML) -d manpage -o $@+ $< && \
377+
mv $@+ $@
378378

379379
user-manual.xml: user-manual.txt user-manual.conf asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
380-
$(QUIET_ASCIIDOC)$(RM) $@.new $@ && \
381-
$(TXT_TO_XML) -d book -o $@.new $< && \
382-
mv $@.new $@
380+
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
381+
$(TXT_TO_XML) -d book -o $@+ $< && \
382+
mv $@+ $@
383383

384384
technical/api-index.txt: technical/api-index-skel.txt \
385385
technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS))
@@ -397,46 +397,46 @@ XSLT = docbook.xsl
397397
XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
398398

399399
user-manual.html: user-manual.xml $(XSLT)
400-
$(QUIET_XSLTPROC)$(RM) $@.new $@ && \
401-
xsltproc $(XSLTOPTS) -o $@.new $(XSLT) $< && \
402-
mv $@.new $@
400+
$(QUIET_XSLTPROC)$(RM) $@+ $@ && \
401+
xsltproc $(XSLTOPTS) -o $@+ $(XSLT) $< && \
402+
mv $@+ $@
403403

404404
git.info: user-manual.texi
405405
$(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ user-manual.texi
406406

407407
user-manual.texi: user-manual.xml
408-
$(QUIET_DB2TEXI)$(RM) $@.new $@ && \
409-
$(DOCBOOK2X_TEXI) user-manual.xml --encoding=UTF-8 --to-stdout >$@.new.new && \
410-
$(PERL_PATH) fix-texi.perl <$@.new.new >$@.new && \
411-
rm $@.new.new && \
412-
mv $@.new $@
408+
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
409+
$(DOCBOOK2X_TEXI) user-manual.xml --encoding=UTF-8 --to-stdout >$@++ && \
410+
$(PERL_PATH) fix-texi.perl <$@++ >$@+ && \
411+
rm $@++ && \
412+
mv $@+ $@
413413

414414
user-manual.pdf: user-manual.xml
415-
$(QUIET_DBLATEX)$(RM) $@.new $@ && \
416-
$(DBLATEX) -o $@.new $(DBLATEX_COMMON) $< && \
417-
mv $@.new $@
415+
$(QUIET_DBLATEX)$(RM) $@+ $@ && \
416+
$(DBLATEX) -o $@+ $(DBLATEX_COMMON) $< && \
417+
mv $@+ $@
418418

419419
gitman.texi: $(MAN_XML) cat-texi.perl texi.xsl
420-
$(QUIET_DB2TEXI)$(RM) $@.new $@ && \
421-
($(foreach xml,$(sort $(MAN_XML)),xsltproc -o $(xml).new texi.xsl $(xml) && \
422-
$(DOCBOOK2X_TEXI) --encoding=UTF-8 --to-stdout $(xml).new && \
423-
rm $(xml).new &&) true) > $@.new.new && \
424-
$(PERL_PATH) cat-texi.perl $@ <$@.new.new >$@.new && \
425-
rm $@.new.new && \
426-
mv $@.new $@
420+
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
421+
($(foreach xml,$(sort $(MAN_XML)),xsltproc -o $(xml)+ texi.xsl $(xml) && \
422+
$(DOCBOOK2X_TEXI) --encoding=UTF-8 --to-stdout $(xml)+ && \
423+
rm $(xml)+ &&) true) > $@++ && \
424+
$(PERL_PATH) cat-texi.perl $@ <$@++ >$@+ && \
425+
rm $@++ && \
426+
mv $@+ $@
427427

428428
gitman.info: gitman.texi
429429
$(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate $*.texi
430430

431431
$(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml
432-
$(QUIET_DB2TEXI)$(RM) $@.new $@ && \
433-
$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@.new && \
434-
mv $@.new $@
432+
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
433+
$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@+ && \
434+
mv $@+ $@
435435

436436
howto-index.txt: howto-index.sh $(wildcard howto/*.txt)
437-
$(QUIET_GEN)$(RM) $@.new $@ && \
438-
'$(SHELL_PATH_SQ)' ./howto-index.sh $(sort $(wildcard howto/*.txt)) >$@.new && \
439-
mv $@.new $@
437+
$(QUIET_GEN)$(RM) $@+ $@ && \
438+
'$(SHELL_PATH_SQ)' ./howto-index.sh $(sort $(wildcard howto/*.txt)) >$@+ && \
439+
mv $@+ $@
440440

441441
$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
442442
$(QUIET_ASCIIDOC)$(TXT_TO_HTML) $*.txt
@@ -445,10 +445,10 @@ WEBDOC_DEST = /pub/software/scm/git/docs
445445

446446
howto/%.html: ASCIIDOC_EXTRA += -a git-relative-html-prefix=../
447447
$(patsubst %.txt,%.html,$(wildcard howto/*.txt)): %.html : %.txt GIT-ASCIIDOCFLAGS
448-
$(QUIET_ASCIIDOC)$(RM) $@.new $@ && \
448+
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
449449
sed -e '1,/^$$/d' $< | \
450-
$(TXT_TO_HTML) - >$@.new && \
451-
mv $@.new $@
450+
$(TXT_TO_HTML) - >$@+ && \
451+
mv $@+ $@
452452

453453
install-webdoc : html
454454
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)

0 commit comments

Comments
 (0)