grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] grub-mkconfig linux: Fix quadratic algorithm for sorting


From: Mathieu Desnoyers
Subject: Re: [PATCH v2] grub-mkconfig linux: Fix quadratic algorithm for sorting menu items
Date: Thu, 5 May 2022 09:53:19 -0400 (EDT)


----- On May 4, 2022, at 11:24 AM, Mathieu Desnoyers 
mathieu.desnoyers@efficios.com wrote:

> ----- On May 4, 2022, at 10:43 AM, Robbie Harwood rharwood@redhat.com wrote:
> 
>> Mathieu Desnoyers <mathieu.desnoyers@efficios.com> writes:
>> 
>>> +version_reverse_sort ()
>>> +{
>>> +  case $version_reverse_sort_sort_has_v in
>> 
>> Does this need to be its own variable, or could it just reuse
>> version_sort_sort_has_v?
> 
> We could do that, assuming that both sort -r -V and sort -V always work (or
> don't)
> in the same way.
> 
> Then I would change the test in version_reverse_sort to:
> 
> if sort -V </dev/null > /dev/null 2>&1; then
> 
> There is no point in calling this check with "-r" if it sets
> version_sort_sort_has_v.
> 
>> 
>>> +reverse_sorted_list=$(echo $list | tr ' ' '\n' | sed 's/$/ 2/' | sed 
>>> 's/\.old
>>> 2/ 1/' | version_reverse_sort | sed 's/ 1$/.old/' | sed 's/ 2$//')
>> 
>> Could the `sed | sed` pattern be collapsed into a single invocation
>> using multiple -e switches?1
> 
> I think we can straightforwardly turn "| sed 's/ 1$/.old/' | sed 's/ 2$//'"
> into "| sed -e 's/ 1$/.old/' -e 's/ 2$//'".
> 
> How to match that all lines ending with ".old" need to be replaced with a
> " 1" suffix, and all _other_ lines need to be suffixed with " 2" in a single
> sed invocation is unclear to me. Any idea ?

Actually with sed -e 's/$/ 2/' -e 's/\.old 2$/ 1/' the second -e applies on the
result of the first, so I can just do that.

Thanks,

Mathieu

> 
> Thanks,
> 
> Mathieu
> 
>> 
>> Be well,
>> --Robbie
> 
> --
> Mathieu Desnoyers
> EfficiOS Inc.
> http://www.efficios.com

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com



reply via email to

[Prev in Thread] Current Thread [Next in Thread]