summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2022-01-22 19:02:36 +0100
committerJohn Ankarström <john@ankarstrom.se>2022-01-22 19:02:36 +0100
commit05df71193f2c637885ac80c82a1ea06b9122a13c (patch)
tree016927c73bbba37150b5d871936e380e3d82c4b5
parent04a9191db880559ab803bbe6199161f21d19f03b (diff)
downloadsave-05df71193f2c637885ac80c82a1ea06b9122a13c.tar.gz
M save.exe
M save.pl M save.pl~
-rw-r--r--save.exebin278385 -> 278441 bytes
-rw-r--r--save.pl28
-rw-r--r--save.pl~21
3 files changed, 29 insertions, 20 deletions
diff --git a/save.exe b/save.exe
index b51a897..8d84dd5 100644
--- a/save.exe
+++ b/save.exe
Binary files differ
diff --git a/save.pl b/save.pl
index df7952e..257a73a 100644
--- a/save.pl
+++ b/save.pl
@@ -12,8 +12,10 @@ unlink(D) :->
:- pce_global(@dialog, new(save_dialog('Save'))).
:- pce_global(@files, new(chain)).
+:- pce_global(@commits, new(chain)).
:- pce_global(@editor, new(editor)).
-:- pce_global(@browser, new(browser)).
+:- pce_global(@file_browser, new(browser)).
+:- pce_global(@commit_browser, new(browser)).
:- pce_global(@save_button,
new(button(save, message(@prolog, save), 'RET'))).
@@ -35,11 +37,12 @@ Ensure Git is in PATH.').
added(0) :-
%send(@pce, load_defaults, 'Defaults'),
- % File browser.
- send(@browser, right, @dialog),
+ % Right side.
+ send(@file_browser, right, @dialog),
+ send(@commit_browser, right, @dialog),
refresh,
- % Input fields.
+ % Left side.
send(@dialog, append, text('Commit message (optional):',
left,
bold)),
@@ -52,12 +55,10 @@ added(0) :-
refresh :-
send(@files, clear),
status(@files),
- send(@browser, members(@files)),
- get(@files, size, L),
- ( L > 0
- -> send(@save_button, status, active)
- ; send(@save_button, status, preview)
- ).
+ send(@file_browser, members(@files)),
+ send(@commits, clear),
+ log(@commits),
+ send(@commit_browser, members(@commits)).
status(C) :-
setup_call_cleanup(
@@ -66,6 +67,13 @@ status(C) :-
read_to_chain(Out, C),
close(Out)).
+log(C) :-
+ setup_call_cleanup(
+ process_create(path(git), ['log', '--format=format:%ai'],
+ [stdout(pipe(Out))]),
+ read_to_chain(Out, C),
+ close(Out)).
+
read_to_chain(S, C) :-
read_line_to_codes(S, Cs),
( Cs == end_of_file
diff --git a/save.pl~ b/save.pl~
index de9b678..c4f2e08 100644
--- a/save.pl~
+++ b/save.pl~
@@ -12,8 +12,10 @@ unlink(D) :->
:- pce_global(@dialog, new(save_dialog('Save'))).
:- pce_global(@files, new(chain)).
+:- pce_global(@commits, new(chain)).
:- pce_global(@editor, new(editor)).
-:- pce_global(@browser, new(browser)).
+:- pce_global(@file_browser, new(browser)).
+:- pce_global(@commit_browser, new(browser)).
:- pce_global(@save_button,
new(button(save, message(@prolog, save), 'RET'))).
@@ -35,11 +37,12 @@ Ensure Git is in PATH.').
added(0) :-
%send(@pce, load_defaults, 'Defaults'),
- % File browser.
- send(@browser, right, @dialog),
+ % Right side.
+ send(@file_browser, right, @dialog),
+ send(@commit_browser, right, @dialog),
refresh,
- % Input fields.
+ % Left side.
send(@dialog, append, text('Commit message (optional):',
left,
bold)),
@@ -52,12 +55,10 @@ added(0) :-
refresh :-
send(@files, clear),
status(@files),
- send(@browser, members(@files)),
- get(@files, size, L),
- ( L > 0
- -> send(@save_button, status, active)
- ; send(@save_button, status, execute)
- ).
+ send(@file_browser, members(@files)),
+ send(@commits, clear),
+ log(@commits),
+ send(@commit_browser, members(@commits)).
status(C) :-
setup_call_cleanup(