blob: 5ffd6a05742b94758c88fd3f0cdf5ace62a86853 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
;;; my-mariadb.el -- Customization for mariadb development-branch -*- lexical-binding: t -*-
;; Copyright (C) 2023 Free Software Foundation.
;; Author: Yuchen Pei <id@ypei.org>
;; Package-Requires: ((emacs "28.2"))
;; This file is part of dotted.
;; dotted is free software: you can redistribute it and/or modify it under
;; the terms of the GNU Affero General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; dotted is distributed in the hope that it will be useful, but WITHOUT
;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
;; Public License for more details.
;; You should have received a copy of the GNU Affero General Public
;; License along with dotted. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;; Customization for mariadb development-branch.
;;; Code:
(require 'my-prog)
(defun my-sql-maybe-mtrr ()
(interactive)
(if (equal (file-name-extension (buffer-file-name))
"test")
(call-interactively 'project-compile)
(sql-send-buffer)))
(defun my-gdb-maria ()
(require 'ycp-gdb)
(interactive)
(when (and (buffer-live-p gud-comint-buffer)
(get-buffer-process gud-comint-buffer))
(my-gdb-quit))
(sleep-for 1)
(my-gdb
(format "rr replay %s -d ~/bin/gdb-mi.sh"
(expand-file-name
(replace-regexp-in-string
"/src"
"/build/mysql-test/var/log/mysqld.1.rr/latest-trace"
(project-root (project-current t)))))))
(defun my-gdb-maria-spider ()
(require 'ycp-gdb)
(interactive)
(when (and (buffer-live-p gud-comint-buffer)
(get-buffer-process gud-comint-buffer))
(my-gdb-quit))
(sleep-for 1)
(my-gdb
(format "rr replay %s -d /home/ycp/source/mariadb-tools/gdb-mi.sh"
(expand-file-name
(replace-regexp-in-string
"/src"
"/build/mysql-test/var/log/mysqld.1.1.rr/latest-trace"
(project-root (project-current t)))))))
(defun my-maria-style ()
(setq comment-start "/* "
comment-end " */"
comment-continue " "
comment-style 'extra-line))
(setq my-c-style-maria-spider
'("maria-spider"
(c-basic-offset . 2)
(c-offsets-alist
. (;; no indentation when opening an brace
(substatement-open . 0)
;; no extra space when aligning continued lines of block comments
(c . 0)
(arglist-intro . +)
(arglist-close . 0)
(arglist-cont-nonempty c-lineup-gcc-asm-reg c-lineup-arglist)
(arglist-cont . 0)
(statement-block-intro . +)
))
;; empty comment start on block comment continuation refill
(c-block-comment-prefix . "")
))
(add-to-list 'c-style-alist my-c-style-maria-spider)
(defun my-mdev-22979 (beg end)
(interactive "r")
(save-excursion
(goto-char end)
(insert " )},
")
(goto-char beg)
(insert " {C_STRING_WITH_LEN(
")))
(defun my-gdb-mysql-parse-frame ()
(interactive)
(let ((old-frame) (level))
(with-current-buffer (gdb-stack-buffer-name)
(save-excursion
(beginning-of-buffer)
(setq old-frame (point))
(text-property-search-forward
'gdb-frame
"mysql_parse"
(lambda (val prop) (equal (alist-get 'func prop) val)))
(beginning-of-line)
(setq level (alist-get 'level (get-text-property (point) 'gdb-frame)))))
(with-current-buffer gud-comint-buffer
(insert "f " level)
(comint-send-input))
(with-current-buffer (gdb-stack-buffer-name)
(save-excursion
(goto-char old-frame)
(gdb-select-frame)))))
(provide 'my-mariadb)
;;; my-mariadb.el ends here
|