@@ -337,21 +337,27 @@ a list of operations that would allow a full update."
337337 (error " Package %s is nowhere to be found in el-get status file. "
338338 package ))))
339339
340- (defun el-get-merge-properties-into-status (package
341- operation
342- &rest keys )
340+ (el-get-define-pkg-op-button-type 'el-get-merge-properties-into-status
341+ " force cached recipe update of" )
342+
343+ (defun el-get-merge-properties-into-status (package operation &rest keys )
343344 " Merge updatable properties for package into status file.
344345
345346PACKAGE is either a package source or name, in which case the
346347source will be read using `el-get-package-def' . The named
347348package must already be installed.
348349
349- Warn about any non-whitelisted properties differing from the
350- cached values."
350+ Warn about any non-whitelisted for OPERATION properties differing
351+ from the cached values.
352+
353+ Interactively, OPERATION is `update' with prefix arg, `reinstall'
354+ with double prefix arg, or `init' otherwise."
351355 (declare (advertised-calling-convention (package operation) " Oct 2016" ))
352356 (interactive
353357 (list (el-get-read-package-with-status " Update cached recipe" " installed" )
354- 'init ))
358+ (cond ((equal '(16 ) current-prefix-arg) 'reinstall )
359+ (current-prefix-arg 'update )
360+ (t 'init ))))
355361 (let* ((source (el-get-package-or-source package ))
356362 (package (plist-get source :name ))
357363 (cached (el-get-read-cached-recipe package source )))
@@ -364,8 +370,18 @@ cached values."
364370 (lwarn '(el-get recipe-cache) :warning
365371 (concat " Must %s `%s' to modify its cached recipe\n "
366372 " adding: %s"
367- " removing: %s" )
368- (mapconcat #'symbol-name required-ops " or " ) package
373+ " removing: %s"
374+ (el-get-fmt-button
375+ " Or %s if you know these changes are safe.\n "
376+ " force update the cached recipe"
377+ :type 'el-get-merge-properties-into-status
378+ 'el-get-package package 'el-get-pkg-extra-args '(reinstall)))
379+ (mapconcat (lambda (op )
380+ (el-get-fmt-button
381+ " %s" op :type (intern (concat " el-get-" op))
382+ 'el-get-package package ))
383+ (mapcar #'symbol-name required-ops) " or " )
384+ package
369385 (if no-add (pp-to-string no-add) " ()\n " )
370386 (if no-rem (pp-to-string no-rem) " ()\n " ))))))
371387
0 commit comments