Function: gamegrid-add-score-with-update-game-score

gamegrid-add-score-with-update-game-score is a byte-compiled function defined in gamegrid.el.gz.

Signature

(gamegrid-add-score-with-update-game-score FILE SCORE &optional REVERSE)

Source Code

;; Defined in /usr/src/emacs/lisp/play/gamegrid.el.gz
(defun gamegrid-add-score-with-update-game-score (file score &optional reverse)
  (let* ((update-game-score-modes
	  (file-modes (expand-file-name "update-game-score" exec-directory)))
	 (gamegrid-shared-game-dir
	  (not (zerop (logand #o6000 (or update-game-score-modes 0))))))
    (cond ((or (not update-game-score-modes) (file-name-absolute-p file))
	   (gamegrid-add-score-insecure file score
                                        gamegrid-user-score-file-directory
                                        reverse))
	  ((and gamegrid-shared-game-dir
		(file-exists-p (expand-file-name file shared-game-score-directory)))
	   ;; Use the setgid (or setuid) "update-game-score" program
	   ;; to update a system-wide score file.
	   (gamegrid-add-score-with-update-game-score-1 file
	    (expand-file-name file shared-game-score-directory) score reverse))
	  ;; Else: Add the score to a score file in the user's home
	  ;; directory.
	  (gamegrid-shared-game-dir
	   ;; If gamegrid-shared-game-dir is non-nil the
	   ;; "update-gamescore" program is setuid, so don't use it.
	   (unless (file-exists-p
		    (directory-file-name gamegrid-user-score-file-directory))
	     (make-directory gamegrid-user-score-file-directory t))
	   (gamegrid-add-score-insecure file score
					gamegrid-user-score-file-directory
                                        reverse))
	  (t
	   (unless (file-exists-p
		    (directory-file-name gamegrid-user-score-file-directory))
	     (make-directory gamegrid-user-score-file-directory t))
	   (let ((f (expand-file-name file
				      gamegrid-user-score-file-directory)))
	     (unless (file-exists-p f)
	       (write-region "" nil f nil 'silent nil 'excl))
	     (gamegrid-add-score-with-update-game-score-1 file f score reverse))))))