442 |
Return either the error message from the server, or nil if the response |
Return either the error message from the server, or nil if the response |
443 |
indicates that the operation was successful." |
indicates that the operation was successful." |
444 |
(if (and (>= (car (car resp)) 200) |
(if (and (>= (car (car resp)) 200) |
445 |
(< (car (car resp)) 300)) |
(<= (car (car resp)) 351)) |
446 |
nil |
nil |
447 |
(concat (nth 1 (car resp)) "\n"))) |
(concat (nth 1 (car resp)) "\n"))) |
448 |
|
|
491 |
(let ((field-list (get gnats-server-conn 'field-list)) |
(let ((field-list (get gnats-server-conn 'field-list)) |
492 |
(validate-res (mapconcat 'gnats-validate-field |
(validate-res (mapconcat 'gnats-validate-field |
493 |
(get gnats-server-conn 'field-list) |
(get gnats-server-conn 'field-list) |
494 |
""))) |
"")) |
495 |
|
(server-resp nil)) |
496 |
(if (not (string= validate-res "")) |
(if (not (string= validate-res "")) |
497 |
(error validate-res)) |
(error validate-res)) |
498 |
(while field-list |
(while field-list |
506 |
(setq field-list (cdr field-list)))) |
(setq field-list (cdr field-list)))) |
507 |
(gnats-clear-edit-buffer) |
(gnats-clear-edit-buffer) |
508 |
(gnats-get-pr (get gnats-server-conn 'pr-number)) |
(gnats-get-pr (get gnats-server-conn 'pr-number)) |
509 |
(gnats-edit-mode t))) |
(gnats-view-mode) |
510 |
|
(message "Changes submitted - switched back to view mode."))) |
511 |
|
|
512 |
(defun gnats-apply-or-submit () |
(defun gnats-apply-or-submit () |
513 |
"If in edit mode apply the current set of changes, or submit the new PR." |
"If in edit mode apply the current set of changes, or submit the new PR." |
537 |
"\n"))) |
"\n"))) |
538 |
(setq field-list (cdr field-list))) |
(setq field-list (cdr field-list))) |
539 |
res))) |
res))) |
540 |
|
(defun gnats-server-resp-to-string (server-resp) |
541 |
|
"Convert a server respons \(list of lists) to a string." |
542 |
|
(apply #'concat (mapcar #'cadr server-resp))) |
543 |
|
|
544 |
|
|
545 |
(defun gnats-submit-pr () |
(defun gnats-submit-pr () |
546 |
"Submit the current PR; if successful, the buffer is killed." |
"Submit the current PR; if successful, the buffer is killed." |
547 |
(let* ((pr-contents (gnats-get-pr-contents)) |
(let* ((pr-contents (gnats-get-pr-contents)) |
548 |
(server-resp |
(server-resp |
549 |
(gnats-server-response-ok |
(gnats-send-command-and-text "SUBM" pr-contents)) |
550 |
(gnats-send-command-and-text "SUBM" pr-contents)))) |
(server-resp-fail |
551 |
(if server-resp |
(gnats-server-response-ok server-resp))) |
552 |
(error server-resp) |
(if server-resp-fail |
553 |
;(kill-buffer (get gnats-server-conn 'server-buffer)) |
(error (gnats-server-resp-to-string server-resp)) |
554 |
(message "PR successfully submitted.")))) |
; (kill-buffer (get gnats-server-conn 'server-buffer)) |
555 |
|
(progn |
556 |
|
(kill-buffer nil) |
557 |
|
(message (format "PR successfully submitted: %s" (gnats-server-resp-to-string server-resp))))))) |
558 |
|
|
559 |
(defun gnats-insert-char (count) |
(defun gnats-insert-char (count) |
560 |
"Insert COUNT chars of the `last-command-char' into the current buffer." |
"Insert COUNT chars of the `last-command-char' into the current buffer." |
1234 |
(< (car (car resp)) 400)) |
(< (car (car resp)) 400)) |
1235 |
(nth 1 (car resp)) |
(nth 1 (car resp)) |
1236 |
user-mail-address))) |
user-mail-address))) |
1237 |
|
;; (setq alias user-mail-address) |
1238 |
|
(setq alias (get gnats-server-conn 'server-username)) |
1239 |
(put gnats-server-conn 'mail-alias alias) |
(put gnats-server-conn 'mail-alias alias) |
1240 |
(when alias |
(when alias |
1241 |
(gnats-send-command "EDITADDR" alias)) |
(gnats-send-command "EDITADDR" alias)) |
1340 |
(switch-to-buffer query-pr-buffer) |
(switch-to-buffer query-pr-buffer) |
1341 |
(error "Couldn't retrieve server info"))) |
(error "Couldn't retrieve server info"))) |
1342 |
(error "Couldn't retrieve server info from query-pr")) |
(error "Couldn't retrieve server info from query-pr")) |
1343 |
(kill-buffer query-pr-buffer)))) |
(if query-pr-buffer |
1344 |
|
(kill-buffer query-pr-buffer))))) |
1345 |
|
|
1346 |
;;;###autoload |
;;;###autoload |
1347 |
(defun send-pr (&optional arg) |
(defun send-pr (&optional arg) |
1368 |
(setq success t)) |
(setq success t)) |
1369 |
(if (not success) |
(if (not success) |
1370 |
(progn |
(progn |
1371 |
(kill-buffer edit-buffer) |
(if edit-buffer |
1372 |
|
(kill-buffer edit-buffer)) |
1373 |
(kill-buffer (get gnats-server-conn 'server-buffer))) |
(kill-buffer (get gnats-server-conn 'server-buffer))) |
1374 |
(switch-to-buffer edit-buffer) |
(switch-to-buffer edit-buffer) |
1375 |
(goto-char (point-min)))))) |
(goto-char (point-min)))))) |
1399 |
(setq success t)))) |
(setq success t)))) |
1400 |
(if (not success) |
(if (not success) |
1401 |
(progn |
(progn |
1402 |
(kill-buffer edit-buffer) |
(if edit-buffer |
1403 |
|
(kill-buffer edit-buffer)) |
1404 |
(kill-buffer (get gnats-server-conn 'server-buffer))) |
(kill-buffer (get gnats-server-conn 'server-buffer))) |
1405 |
(switch-to-buffer edit-buffer) |
(switch-to-buffer edit-buffer) |
1406 |
(goto-char (point-min)))))) |
(goto-char (point-min)))))) |
1473 |
"Keymap for GNATS view mode.") |
"Keymap for GNATS view mode.") |
1474 |
(when (null gnats-view-mode-map) |
(when (null gnats-view-mode-map) |
1475 |
(setq gnats-view-mode-map (make-keymap)) |
(setq gnats-view-mode-map (make-keymap)) |
1476 |
(define-key gnats-view-mode-map "e" 'gnats-view-edit-pr)) |
(define-key gnats-view-mode-map "e" 'gnats-view-edit-pr) |
1477 |
|
(define-key gnats-view-mode-map "D" 'gnats-change-database) |
1478 |
|
(define-key gnats-view-mode-map "g" 'gnats-query-reread) |
1479 |
|
(define-key gnats-view-mode-map "G" 'query-pr) |
1480 |
|
(define-key gnats-view-mode-map "q" 'bury-buffer) |
1481 |
|
) |
1482 |
|
|
1483 |
|
|
1484 |
(defvar gnats-view-mode-hook nil |
(defvar gnats-view-mode-hook nil |
1485 |
"Hook run by `gnats-view-mode'.") |
"Hook run by `gnats-view-mode'.") |
1555 |
(setq success t)))) |
(setq success t)))) |
1556 |
(if (not success) |
(if (not success) |
1557 |
(progn |
(progn |
1558 |
(kill-buffer edit-buffer) |
(if edit-buffer |
1559 |
|
(kill-buffer edit-buffer)) |
1560 |
(kill-buffer (get gnats-server-conn 'server-buffer))) |
(kill-buffer (get gnats-server-conn 'server-buffer))) |
1561 |
(switch-to-buffer edit-buffer) |
(switch-to-buffer edit-buffer) |
1562 |
(goto-char (point-min)))))) |
(goto-char (point-min)))))) |
1621 |
(setq success t)) |
(setq success t)) |
1622 |
(if (not success) |
(if (not success) |
1623 |
(progn |
(progn |
1624 |
(kill-buffer query-buffer) |
(if query-buffer |
1625 |
|
(kill-buffer query-buffer)) |
1626 |
(kill-buffer (get gnats-server-conn 'server-buffer))) |
(kill-buffer (get gnats-server-conn 'server-buffer))) |
1627 |
(switch-to-buffer query-buffer) |
(switch-to-buffer query-buffer) |
1628 |
(message "%d matching PRs." (count-lines (point-min) (point-max))) |
(message "%d matching PRs." (count-lines (point-min) (point-max))) |
1648 |
(string-to-number |
(string-to-number |
1649 |
(read-from-minibuffer "Port: " (if gnats-port |
(read-from-minibuffer "Port: " (if gnats-port |
1650 |
(format "%d" gnats-port) |
(format "%d" gnats-port) |
1651 |
1529))) |
"1529"))) |
1652 |
(read-from-minibuffer "User: " (or gnats-user (user-login-name))))) |
(read-from-minibuffer "User: " (or gnats-user (user-login-name))))) |
1653 |
(setq gnats-database database |
(setq gnats-database database |
1654 |
gnats-server host |
gnats-server host |