1181 |
(interactive) |
(interactive) |
1182 |
(if (TeX-local-master-p) |
(if (TeX-local-master-p) |
1183 |
(error "Master file already set") |
(error "Master file already set") |
1184 |
(setq TeX-master |
(let* ((default (TeX-dwim-master)) |
1185 |
(let ((default (TeX-dwim-master))) |
(name (or (and (eq 'dwim TeX-master) default) |
1186 |
(or |
(condition-case nil |
1187 |
(and (eq 'dwim TeX-master) default) |
(read-file-name (format "Master file: (default %s) " |
1188 |
(TeX-strip-extension |
(or default "this file")) |
1189 |
(condition-case name |
nil default) |
1190 |
(read-file-name (format "Master file: (default %s) " |
(quit "<quit>"))))) |
1191 |
(or default "this file")) |
(cond ((string= name "<quit>") |
1192 |
nil (or default "<default>")) |
(setq TeX-master t)) |
1193 |
(quit "<quit>")) |
((string= name default) |
1194 |
(list TeX-default-extension) |
(setq TeX-master default) |
1195 |
'path)))) |
(TeX-add-local-master)) |
1196 |
(cond ((string-equal TeX-master "<quit>") |
((or |
1197 |
(setq TeX-master t)) |
;; Default `read-file-name' proposes and buffer visits a file. |
1198 |
((or (string-equal TeX-master "<default>") |
(string= (expand-file-name name) (buffer-file-name)) |
1199 |
(string-equal TeX-master "")) |
;; Default of `read-file-name' and buffer does not visit a file. |
1200 |
(setq TeX-master t) |
(string= name default-directory) |
1201 |
(TeX-add-local-master)) |
;; User typed <RET> in an empty minibuffer. |
1202 |
(t |
(string= name "")) |
1203 |
(TeX-add-local-master))))) |
(setq TeX-master t) |
1204 |
|
(TeX-add-local-master)) |
1205 |
|
(t |
1206 |
|
(setq TeX-master (TeX-strip-extension (file-relative-name name) |
1207 |
|
(list TeX-default-extension) |
1208 |
|
'path)) |
1209 |
|
(TeX-add-local-master)))))) |
1210 |
|
|
1211 |
(defun TeX-master-file (&optional extension nondirectory ask) |
(defun TeX-master-file (&optional extension nondirectory ask) |
1212 |
"Set and return the name of the master file for the current document. |
"Set and return the name of the master file for the current document. |
1241 |
((and (eq 'shared TeX-master) ask) |
((and (eq 'shared TeX-master) ask) |
1242 |
(setq TeX-master |
(setq TeX-master |
1243 |
(or TeX-transient-master |
(or TeX-transient-master |
1244 |
(TeX-strip-extension |
(let* ((default (TeX-dwim-master)) |
1245 |
(let ((default (or (TeX-dwim-master) "this file"))) |
(name (read-file-name |
1246 |
(read-file-name |
(format "Master file: (default %s) " |
1247 |
(format "Master file: (default %s) " default) |
(or default "this file")) |
1248 |
nil default)) |
nil default))) |
1249 |
(list TeX-default-extension) |
(cond ((string= name default) |
1250 |
'path))) |
default) |
1251 |
(if (or (string-equal TeX-master "this file") |
((or |
1252 |
(string-equal TeX-master "")) |
;; Default `read-file-name' proposes and |
1253 |
(setq TeX-master t))) |
;; buffer visits a file. |
1254 |
|
(string= (expand-file-name name) |
1255 |
|
(buffer-file-name)) |
1256 |
|
;; Default of `read-file-name' and |
1257 |
|
;; buffer does not visit a file. |
1258 |
|
(string= name default-directory) |
1259 |
|
;; User typed <RET> in an empty minibuffer. |
1260 |
|
(string= name "")) |
1261 |
|
t) |
1262 |
|
(t |
1263 |
|
(TeX-strip-extension |
1264 |
|
name (list (TeX-default-extension)) 'path))))))) |
1265 |
|
|
1266 |
;; We might already know the name. |
;; We might already know the name. |
1267 |
((or (eq TeX-master t) (stringp TeX-master)) TeX-master) |
((or (eq TeX-master t) (stringp TeX-master)) TeX-master) |