Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
27dcca59
Commit
27dcca59
authored
3 years ago
by
Marc Cornellà
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor(emacs): simplify emacsclient wrapper code
parent
b37114b4
master
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
19 deletions
+17
-19
emacsclient.sh
plugins/emacs/emacsclient.sh
+17
-19
No files found.
plugins/emacs/emacsclient.sh
View file @
27dcca59
#!/bin/sh
_emacsfun
()
{
# get list of emacs frames.
frameslist
=
`
emacsclient
--alternate-editor
''
--eval
'(frame-list)'
2>/dev/null | egrep
-o
'(frame)+'
`
emacsfun
()
{
local
frames
=
"
$(
emacsclient
--alternate-editor
""
-n
-e
"(length (frame-list))"
2>/dev/null
)
"
if
[
"
$(
echo
"
$frameslist
"
|
sed
-n
'$='
)
"
-ge
2
]
;
then
# prevent creating another X frame if there is at least one present.
emacsclient
--alternate-editor
""
"
$@
"
else
# Create one if there is no X window yet.
emacsclient
--alternate-editor
""
--create-frame
"
$@
"
fi
# Only create another X frame if there isn't one present
if
[
-z
"
$frames
"
-o
"
$frames
"
-lt
2
]
;
then
emacsclient
--alternate-editor
""
--create-frame
"
$@
"
return
$?
fi
emacsclient
--alternate-editor
""
"
$@
"
}
# adopted from https://github.com/davidshepherd7/emacs-read-stdin/blob/master/emacs-read-stdin.sh
# If the second argument is - then write stdin to a tempfile and open the
# tempfile. (first argument will be `--no-wait` passed in by the plugin.zsh)
if
[
"$#"
-ge
"2"
-a
"
$2
"
=
"-"
]
then
tempfile
=
"
$(
mktemp
--tmpdir
emacs-stdin-
$USERNAME
.XXXXXXX 2>/dev/null
\
||
mktemp
-t
emacs-stdin-
$USERNAME
)
"
# support BSD mktemp
cat
-
>
"
$tempfile
"
_emacsfun
--no-wait
$tempfile
else
_emacsfun
"
$@
"
if
[
$#
-ge
2
-a
"
$2
"
=
"-"
]
;
then
tempfile
=
"
$(
mktemp
--tmpdir
emacs-stdin-
$USERNAME
.XXXXXXX 2>/dev/null
\
||
mktemp
-t
emacs-stdin-
$USERNAME
)
"
# support BSD mktemp
cat
-
>
"
$tempfile
"
emacsfun
--no-wait
"
$tempfile
"
return
$?
fi
emacsfun
"
$@
"
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment