If there is an error in the configuration file, don't just exit(1) as this can
cause the client to hang. Instead, send the error message, then mark the client
as bad and start a normal shutdown so the server exits once the error is
written.

This also allows some code duplicating daemon(3) to be trimmed and logging to
begin earlier.

Prompted by Theo noticing the behaviour on error wasn't documented.
4 files changed
tree: 7b2693e599d1137fa818a6ec8330a299de536c4d
  1. Makefile
  2. array.h
  3. attributes.c
  4. buffer-poll.c
  5. buffer.c
  6. cfg.c
  7. client-fn.c
  8. client.c
  9. clock.c
  10. cmd-attach-session.c
  11. cmd-bind-key.c
  12. cmd-break-pane.c
  13. cmd-choose-session.c
  14. cmd-choose-window.c
  15. cmd-clear-history.c
  16. cmd-clock-mode.c
  17. cmd-command-prompt.c
  18. cmd-confirm-before.c
  19. cmd-copy-buffer.c
  20. cmd-copy-mode.c
  21. cmd-delete-buffer.c
  22. cmd-detach-client.c
  23. cmd-display-message.c
  24. cmd-down-pane.c
  25. cmd-find-window.c
  26. cmd-generic.c
  27. cmd-has-session.c
  28. cmd-if-shell.c
  29. cmd-kill-pane.c
  30. cmd-kill-server.c
  31. cmd-kill-session.c
  32. cmd-kill-window.c
  33. cmd-last-window.c
  34. cmd-link-window.c
  35. cmd-list-buffers.c
  36. cmd-list-clients.c
  37. cmd-list-commands.c
  38. cmd-list-keys.c
  39. cmd-list-sessions.c
  40. cmd-list-windows.c
  41. cmd-list.c
  42. cmd-load-buffer.c
  43. cmd-lock-server.c
  44. cmd-move-window.c
  45. cmd-new-session.c
  46. cmd-new-window.c
  47. cmd-next-layout.c
  48. cmd-next-window.c
  49. cmd-paste-buffer.c
  50. cmd-previous-layout.c
  51. cmd-previous-window.c
  52. cmd-refresh-client.c
  53. cmd-rename-session.c
  54. cmd-rename-window.c
  55. cmd-resize-pane.c
  56. cmd-respawn-window.c
  57. cmd-rotate-window.c
  58. cmd-save-buffer.c
  59. cmd-scroll-mode.c
  60. cmd-select-layout.c
  61. cmd-select-pane.c
  62. cmd-select-prompt.c
  63. cmd-select-window.c
  64. cmd-send-keys.c
  65. cmd-send-prefix.c
  66. cmd-server-info.c
  67. cmd-set-buffer.c
  68. cmd-set-option.c
  69. cmd-set-password.c
  70. cmd-set-window-option.c
  71. cmd-show-buffer.c
  72. cmd-show-options.c
  73. cmd-show-window-options.c
  74. cmd-source-file.c
  75. cmd-split-window.c
  76. cmd-start-server.c
  77. cmd-string.c
  78. cmd-suspend-client.c
  79. cmd-swap-pane.c
  80. cmd-swap-window.c
  81. cmd-switch-client.c
  82. cmd-unbind-key.c
  83. cmd-unlink-window.c
  84. cmd-up-pane.c
  85. cmd.c
  86. colour.c
  87. grid-view.c
  88. grid.c
  89. input-keys.c
  90. input.c
  91. key-bindings.c
  92. key-string.c
  93. layout-set.c
  94. layout.c
  95. log.c
  96. mode-key.c
  97. names.c
  98. options-cmd.c
  99. options.c
  100. paste.c
  101. procname.c
  102. resize.c
  103. screen-redraw.c
  104. screen-write.c
  105. screen.c
  106. server-fn.c
  107. server-msg.c
  108. server.c
  109. session.c
  110. status.c
  111. tmux.1
  112. tmux.c
  113. tmux.h
  114. tty-keys.c
  115. tty-term.c
  116. tty.c
  117. utf8.c
  118. window-choose.c
  119. window-clock.c
  120. window-copy.c
  121. window-more.c
  122. window-scroll.c
  123. window.c
  124. xmalloc.c