diff --git a/resources/calibre-portable.bat b/resources/calibre-portable.bat
index 473cdc4236..f22c72cd8c 100644
--- a/resources/calibre-portable.bat
+++ b/resources/calibre-portable.bat
@@ -6,25 +6,37 @@ REM - Calibre Library Files
REM - Calibre Config Files
REM - Calibre Metadata database
REM - Calibre Source files
+REM - Calibre Temp Files
REM By setting the paths correctly it can be used to run:
REM - A "portable calibre" off a USB stick.
REM - A network installation with local metadata database
REM (for performance) and books stored on a network share
+REM - A local installation using customised settings
REM
-REM If trying to run off a USB stick then the following
-REM folder structure is recommended:
+REM If trying to run off a USB stick then the folder structure
+REM shown below is recommended (relative to the location of
+REM this batch file). This can structure can also be used
+REM when running of a local hard disk if you want to get the
+REM level of control this batch file provides.
REM - Calibre2 Location of program files
REM - CalibreConfig Location of Configuration files
REM - CalibreLibrary Location of Books and metadata
+REM - CalibreSource Location of Calibre Source files (Optional)
+REM
+REM This batch file is designed so that if you create the recommended
+REM folder structure then it can be used 'as is' without modification.
REM -------------------------------------
REM Set up Calibre Config folder
+REM
+REM This is where user specific settings
+REM are stored.
REM -------------------------------------
IF EXIST CalibreConfig (
SET CALIBRE_CONFIG_DIRECTORY=%cd%\CalibreConfig
- ECHO CONFIG=%cd%\CalibreConfig
+ ECHO CONFIG FILES: %cd%\CalibreConfig
)
@@ -35,21 +47,18 @@ REM Location where Book files are located
REM Either set explicit path, or if running from a USB stick
REM a relative path can be used to avoid need to know the
REM drive letter of the USB stick.
-
+REM
REM Comment out any of the following that are not to be used
+REM (although leaving them in does not really matter)
REM --------------------------------------------------------------
IF EXIST U:\eBooks\CalibreLibrary (
SET CALIBRE_LIBRARY_DIRECTORY=U:\eBOOKS\CalibreLibrary
- ECHO LIBRARY=U:\eBOOKS\CalibreLibrary
+ ECHO LIBRARY FILES: U:\eBOOKS\CalibreLibrary
)
IF EXIST CalibreLibrary (
SET CALIBRE_LIBRARY_DIRECTORY=%cd%\CalibreLibrary
- ECHO LIBRARY=%cd%\CalibreLibrary
-)
-IF EXIST CalibreBooks (
- SET CALIBRE_LIBRARY_DIRECTORY=%cd%\CalibreBooks
- ECHO LIBRARY=%cd%\CalibreBooks
+ ECHO LIBRARY FILES: %cd%\CalibreLibrary
)
@@ -60,7 +69,7 @@ REM Location where the metadata.db file is located. If not set
REM the same location as Books files will be assumed. This.
REM options is used to get better performance when the Library is
REM on a (slow) network drive. Putting the metadata.db file
-REM locally makes gives a big performance improvement.
+REM locally then makes gives a big performance improvement.
REM
REM NOTE. If you use this option, then the ability to switch
REM libraries within Calibre will be disabled. Therefore
@@ -68,19 +77,10 @@ REM you do not want to set it if the metadata.db file
REM is at the same location as the book files.
REM --------------------------------------------------------------
-IF EXIST CalibreBooks (
- IF NOT "%CALIBRE_LIBRARY_DIRECTORY%" == "%cd%\CalibreBooks" (
- SET SET CALIBRE_OVERRIDE_DATABASE_PATH=%cd%\CalibreBooks\metadata.db
- ECHO DATABASE=%cd%\CalibreBooks\metadata.db
- ECHO '
- ECHO ***CAUTION*** Library Switching will be disabled
- ECHO '
- )
-)
-IF EXIST CalibreMetadata (
+IF EXIST %cd%\CalibreMetadata\metadata.db (
IF NOT "%CALIBRE_LIBRARY_DIRECTORY%" == "%cd%\CalibreMetadata" (
SET CALIBRE_OVERRIDE_DATABASE_PATH=%cd%\CalibreMetadata\metadata.db
- ECHO DATABASE=%cd%\CalibreMetadata\metadata.db
+ ECHO DATABASE: %cd%\CalibreMetadata\metadata.db
ECHO '
ECHO ***CAUTION*** Library Switching will be disabled
ECHO '
@@ -96,37 +96,60 @@ REM When running from source the GUI will have a '*' after the version.
REM number that is displayed at the bottom of the Calibre main screen.
REM --------------------------------------------------------------
-IF EXIST Calibre\src (
- SET CALIBRE_DEVELOP_FROM=%cd%\Calibre\src
- ECHO SOURCE=%cd%\Calibre\src
-)
-IF EXIST D:\Calibre\Calibre\src (
- SET CALIBRE_DEVELOP_FROM=D:\Calibre\Calibre\src
- ECHO SOURCE=D:\Calibre\Calibre\src
+IF EXIST CalibreSource\src (
+ SET CALIBRE_DEVELOP_FROM=%cd%\CalibreSource\src
+ ECHO SOURCE FILES: %cd%\CalibreSource\src
)
+
REM --------------------------------------------------------------
REM Specify Location of calibre binaries (optional)
REM
REM To avoid needing Calibre to be set in the search path, ensure
REM that Calibre Program Files is current directory when starting.
REM The following test falls back to using search path .
-REM This folder can be populated by cpying the Calibre2 folder from
-REM an existing isntallation or by isntalling direct to here.
+REM This folder can be populated by copying the Calibre2 folder from
+REM an existing installation or by installing direct to here.
REM --------------------------------------------------------------
-IF EXIST Calibre2 (
- Calibre2 CD Calibre2
- ECHO PROGRAMS=%cd%
+IF EXIST %cd%\Calibre2 (
+ CD %cd%\Calibre2
+ ECHO PROGRAM FILES: %cd%
)
+
+REM --------------------------------------------------------------
+REM Location of Calibre Temporary files (optional)
+REM
+REM Calibre creates a lot of temproary files while running
+REM In theory these are removed when Calibre finishes, but
+REM in practise files can be left behind (particularily if
+REM any errors occur. Using this option allows some
+REM explicit clean-up of these files.
+REM If not set Calibre uses the normal system TEMP location
+REM --------------------------------------------------------------
+
+SET CALIBRE_TEMP_DIR=%TEMP%\CALIBRE_TEMP
+ECHO TEMPORARY FILES: %CALIBRE_TEMP_DIR%
+
+IF NOT "%CALIBRE_TEMP_DIR%" == "" (
+ IF EXIST "%CALIBRE_TEMP_DIR%" RMDIR /s /q "%CALIBRE_TEMP_DIR%"
+ MKDIR "%CALIBRE_TEMP_DIR%"
+ REM set the following for any components that do
+ REM not obey the CALIBRE_TEMP_DIR setting
+ SET TMP=%CALIBRE_TEMP_DIR%
+ SET TEMP=%CALIBRE_TEMP_DIR%
+)
+
+
REM ----------------------------------------------------------
REM The following gives a chance to check the settings before
REM starting Calibre. It can be commented out if not wanted.
REM ----------------------------------------------------------
-echo "Press CTRL-C if you do not want to continue"
-pause
+ECHO '
+ECHO "Press CTRL-C if you do not want to continue"
+PAUSE
REM --------------------------------------------------------
@@ -141,5 +164,7 @@ REM If used without /WAIT opotion launches Calibre and contines batch file.
REM Use with /WAIT to wait until Calibre completes to run a task on exit
REM --------------------------------------------------------
-echo "Starting up Calibre"
-START /belownormal Calibre --with-library "%CALIBRE_LIBRARY_DIRECTORY%"
+ECHO "Starting up Calibre"
+ECHO OFF
+ECHO %cd%
+START /belownormal Calibre --with-library "%CALIBRE_LIBRARY_DIRECTORY%"
\ No newline at end of file
diff --git a/src/calibre/ebooks/conversion/utils.py b/src/calibre/ebooks/conversion/utils.py
index f6e259b6f9..7882d82d47 100644
--- a/src/calibre/ebooks/conversion/utils.py
+++ b/src/calibre/ebooks/conversion/utils.py
@@ -155,7 +155,7 @@ class HeuristicProcessor(object):
]
for word in ITALICIZE_WORDS:
- html = html.replace(word, '%s' % word)
+ html = re.sub(r'(?<=\s|>)' + word + r'(?=\s|<)', '%s' % word, html)
for pat in ITALICIZE_STYLE_PATS:
html = re.sub(pat, lambda mo: '%s' % mo.group('words'), html)
diff --git a/src/calibre/ebooks/fb2/fb2ml.py b/src/calibre/ebooks/fb2/fb2ml.py
index 796a94533a..515bdee9df 100644
--- a/src/calibre/ebooks/fb2/fb2ml.py
+++ b/src/calibre/ebooks/fb2/fb2ml.py
@@ -99,7 +99,10 @@ class FB2MLizer(object):
metadata['appname'] = __appname__
metadata['version'] = __version__
metadata['date'] = '%i.%i.%i' % (datetime.now().day, datetime.now().month, datetime.now().year)
- metadata['lang'] = u''.join(self.oeb_book.metadata.lang) if self.oeb_book.metadata.lang else 'en'
+ if self.oeb_book.metadata.language:
+ metadata['lang'] = self.oeb_book.metadata.language[0].value
+ else:
+ metadata['lang'] = u'en'
metadata['id'] = None
metadata['cover'] = self.get_cover()
diff --git a/src/calibre/gui2/dialogs/metadata_bulk.ui b/src/calibre/gui2/dialogs/metadata_bulk.ui
index 163d49b328..b0f2c144fc 100644
--- a/src/calibre/gui2/dialogs/metadata_bulk.ui
+++ b/src/calibre/gui2/dialogs/metadata_bulk.ui
@@ -7,7 +7,7 @@
0
0
962
- 727
+ 645
@@ -45,7 +45,7 @@
0
0
954
- 666
+ 584
@@ -996,8 +996,8 @@ not multiple and the destination field is multiple
0
0
- 197
- 60
+ 938
+ 268