unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Adonay Felipe Nogueira <adfeno@hyperbola.info>
To: 29365@debbugs.gnu.org
Subject: bug#29365: openmolar looking in /usr/share/openmolar
Date: Wed, 22 Nov 2017 15:13:32 -0200	[thread overview]
Message-ID: <871skq2q4j.fsf@hyperbola.info> (raw)
In-Reply-To: <87tvxmfyf4.fsf@gmail.com> (Chris Marusich's message of "Wed, 22 Nov 2017 01:35:59 -0800")

Adding to what Chris Marusich described:

'substitute* works somewhat in the following way:

--8<---------------cut here---------------start------------->8---
(substitute FILE-string-or-FILE-list-of-strings
   ((EREGEX-string SYMBOLS-to-put-both-entire-match-and-captures-or-NOTHING)
    REPLACEMENT-string))
--8<---------------cut here---------------end--------------->8---

For example:

--8<---------------cut here---------------start------------->8---
(substitute "file1.txt"
   (("a")
    "b")
   ;; ... would replace every "a" with "b".
   (("1([[:digit:]]*)([^[:digit:]])" full capture1 capture2)
    (string-append full
                   " 2"
                   capture1
                   capture2)))
   ;; ... would replace "1234A" and "1A" with "1234A 2234A" and "1A 2A",
   ;; respectively.

(substitute '("file2.txt"
              "file3.txt"
              "file4.txt")
   (("a\\*\n") ; matches literal asterisk (*) followed by a new
               ; line/line feed.
    "b")
   ;; ... from "a*[newline]" to "b".
   (("(1)[^[:digit:]]*" _ interesting-one) ; use "_" capture to not save
                                           ; the whole match.
    (string-append interesting-one
                   " 1")))
   ;; ... from "1A" or from "1ABC" to "1 1" ("A" and "ABC" parts are
   ;; discarded).
--8<---------------cut here---------------end--------------->8---

Notice that the regular expression that GNU Guile uses is the extended
one (Extended Regular Expression). See the info page for Guile for more
details (type `info guile' in the terminal, and go to the section
"Regular Expressions", inside that section notice that there is one
talking about backslash escapes, this one is also important for reasons
that you'll see in the next paragrah).

Notice that in Guile backslashes in strings also have special meaning,
so one has to take into account string+regex special meaning when doing
backslash escapes. In the examples given, the replacement for
"file2.txt" onwards shows us how to deal with this.

I hope this helps! ;)

2017-11-22T01:35:59-0800 Chris Marusich wrote:
>
> Based on your assessment, it looks like the problem is that the
> application hard-codes the "/usr" directory path.
>
> One solution for this problem is to replace that line of code in the
> source with the correct path.  You can do this in the package definition
> by using the substitute* macro provided by the (guix build utils)
> module.  In fact, it looks like the current package definition for
> openmolar already attempts to do this.  Run "guix edit openmolar" to
> view the current package definition.
>
> Perhaps you could modify the package definition to also replace the path
> in localsettings.py?  You might also want to look around in the source
> for other paths that need to be fixed (a command such as "grep -r /usr"
> might be helpful).
>
> For information on how to use substitute*, please refer to
> guix/build/utils.scm in the Guix source tree.  For general information
> on hacking on Guix, check the section titled "Contributing" in the
> manual (e.g., run info '(guix) Contributing' in a terminal).

-- 
- https://libreplanet.org/wiki/User:Adfeno
- Palestrante e consultor sobre /software/ livre (não confundir com
  gratis).
- "WhatsApp"? Ele não é livre. Por favor, veja formas de se comunicar
  instantaneamente comigo no endereço abaixo.
- Contato: https://libreplanet.org/wiki/User:Adfeno#vCard
- Arquivos comuns aceitos (apenas sem DRM): Corel Draw, Microsoft
  Office, MP3, MP4, WMA, WMV.
- Arquivos comuns aceitos e enviados: CSV, GNU Dia, GNU Emacs Org, GNU
  GIMP, Inkscape SVG, JPG, LibreOffice (padrão ODF), OGG, OPUS, PDF
  (apenas sem DRM), PNG, TXT, WEBM.

  reply	other threads:[~2017-11-22 17:14 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-20 17:33 bug#29365: openmolar looking in /usr/share/openmolar Quiliro Ordonez Baca
2017-11-22  9:35 ` Chris Marusich
2017-11-22 17:13   ` Adonay Felipe Nogueira [this message]
2017-12-20 20:11   ` Quiliro Ordonez Baca

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=871skq2q4j.fsf@hyperbola.info \
    --to=adfeno@hyperbola.info \
    --cc=29365@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).