<div dir="ltr">Mathieu - <div><br></div><div>Do you want pull requests sent to your git for issues we see?  That way people can help with the coding and you can review changes and decide whether to accept them in the main branch.<br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>-- <br>Justin B. Alcorn</div><div>The views expressed are not necessarily my own, much less anyone else's<br>PGP Fingerprint CCEB F776 C3FD 1050 C8DB  532E B8B9 BED7 7764 406C</div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Sep 16, 2022 at 9:46 AM Mathieu via Remind-fans <<a href="mailto:remind-fans@lists.skoll.ca">remind-fans@lists.skoll.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg-2064889706733850282"><u></u>


  
  
  
  
  
  

<div>
<p>Hi Gary,</p>
<p>Thanks a lot for your very helpful comments, and also for detailing this well your solutions to the issues you've raised. It's greatly appreciated.</p>
<p>I have updated the script using your input, see details below and in the diff. I only tested it quickly and I have to go in a meeting, hopefully I didn't introduce new bugs.</p>
<blockquote>
<p>That is very nice. No more piping rem to less and not asking for<br>
enough weeks or months. Thank you.</p>
<p>I had a problem when I first tried to add a reminder, though: vim<br>
opened the current directory instead of the argument to remint.sh.<br>
I took a look at the script and found a few issues.<br>
This should now be fixed in <code>master</code>. <code>remint</code> will take any file or folder given as argument, and in the latter case it will read any <code>*.rem</code> file it contains and create a <code>100-remint.rem</code> into that folder which will be used as default file for adding new events. If no argument is supplied, then it will look into <code>~/.config/remind/reminders</code> and <code>~/.reminders</code>, which both can be files or directories (using the same logic as above).</p>
</blockquote>
<blockquote>
<ul>
<li>EDITOR is an environment variable set by users to tell programs<br>
what their preferred editor is. It should not be altered as it is<br>
at line 36.<br>
I agree, I needed some way to detect whether it is set at all, but I have modified the corresponding line so that the scripts sets it if and only if not already set in environment.</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li>On the help screen, the word "week" is missing its k. (Line 75)<br>
Fixed.</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li>When executing $EDITOR, vim and vi, the script has the editor jump<br>
to line 2 of $FILE. That interferes with automatically jumping to<br>
the last cursor position, which I prefer for my reminders.<br>
Good point; everyone's habits with their text editors are so diverse it's not easy to set any opinionated default behavior. I've chosen to keep that line jump only for <code>a</code> (add) since this option is meant to autofill the currently selected date in the reminders file. <code>e</code> (edit) now just opens the file without any preset cursor coordinates.</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li>When testing for the existence of a program, the script uses<br>
tests like this one for 'kak':</li>
</ul>
<p>if type "$(which kak)" > /dev/null; then</p>
<p>Using 'which' here is redundant--'type' alone will do what you<br>
want. Also, 'type' sends error messages to stderr, so that should<br>
be directed to /dev/null as well. The test then becomes this:</p>
<p>if type kak &> /dev/null; then<br>
You're absolutely right, thanks!</p>
</blockquote>
<blockquote>
<ul>
<li>Some comments state that you'd like to insert $REF<br>
programmatically. For vim, you can do this (at line 257):</li>
</ul>
<p>vim -c "put ='$REF '" -c "startinsert!" "$FILE"<br>
Thanks, I added it. Now hopefully I or someone else will find how to do something similar in <code>emacs</code> and most cases will be covered (I have set <code>vi</code> and <code>nano</code> as additional fallback editors, but I assume most users will be covered with <code>emacs</code> and <code>vim</code>).</p>
</blockquote>
<blockquote>
<ul>
<li>Remind can use the environment variable DOTREMINDERS to find the<br>
reminders file if it not in the default place. It would be nice<br>
if remint.sh used that as well. I changed the code at line 435<br>
to this:</li>
</ul>
<p>if [[ -n "$DOTREMINDERS" ]] && [[ -e "$DOTREMINDERS" ]]; then<br>
INPUT="$DOTREMINDERS"<br>
elif [[ -e "$HOME/.config/remind/reminders" ]]; then<br>
I didn't know about that, implemented your change.</p>
</blockquote>
<blockquote>
<ul>
<li>I'm not sure what the difference is between INPUT and FILE, but<br>
FILE was not defined the first time I tried using the 'a' (add)<br>
command, so I added</li>
</ul>
<p>FILE=${1}"</p>
<p>below line 466 (now line 468 in my modified copy).<br>
<code>$FILE</code> is the target file for <code>e</code> and <code>a</code>, <em>i.e.</em>, the file to edit and add new events to. <code>$INPUT</code> is what <code>remint</code>/<code>remind</code> read from, <em>i.e.</em>, the same as <code>$FILE</code> if using only a single file, or a directory. There was a hole in this logic (now fixed, hopefully) which was causing the issue you had initially with <code>vim</code> opening the folder instead of a file.</p>
</blockquote>
<blockquote>
<ul>
<li>Every time the ui function finishes some command other than 'q',<br>
it calls itself again. This puts another piece of information on<br>
bash's call stack. For such a small script that is used briefly,<br>
then quit, this is probably not a problem, but it could be if<br>
someone just left it running. I didn't change anything related to<br>
this.<br>
I am not sure I understand what would be the issue if the script is left running, since the function executes itself but is paused every so often by all those <code>read</code> lines to wait for user input. Maybe I missed something though.</li>
</ul>
</blockquote>
<blockquote>
<p>I hope that's helpful. I look forward to using remint.sh often.<br>
Very. Many thanks!</p>
</blockquote>
<p>Cheers,</p>
<p>M</p>
</div>

_______________________________________________<br>
Remind-fans mailing list<br>
<a href="mailto:Remind-fans@lists.skoll.ca" target="_blank">Remind-fans@lists.skoll.ca</a><br>
<a href="https://dianne.skoll.ca/mailman/listinfo/remind-fans" rel="noreferrer" target="_blank">https://dianne.skoll.ca/mailman/listinfo/remind-fans</a><br>
Remind is at <a href="https://dianne.skoll.ca/projects/remind/" rel="noreferrer" target="_blank">https://dianne.skoll.ca/projects/remind/</a><br>
</div></blockquote></div>