Re: Reduce the number of special cases to build contrib modules on windows

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: Reduce the number of special cases to build contrib modules on windows
Дата
Msg-id 20201109140658.GA32074@alvherre.pgsql
обсуждение исходный текст
Ответ на Re: Reduce the number of special cases to build contrib modules on windows  (David Rowley <dgrowleyml@gmail.com>)
Ответы Re: Reduce the number of special cases to build contrib modules on windows
Список pgsql-hackers
On 2020-Nov-06, David Rowley wrote:

> +# Handle makefile rules for when file to be added to the project
> +# does not exist.  Returns 1 when the original file add should be
> +# skipped.
> +sub FindAndAddAdditionalFiles
> +{
> +    my $self = shift;
> +    my $fname = shift;
> +    my ($ext) = $fname =~ /(\.[^.]+)$/;
> +
> +    # For .c files, check if a .l file of the same name exists and add that
> +    # too.
> +    if ($ext eq ".c")
> +    {
> +        my $filenoext = $fname;
> +        $filenoext =~ s{\.[^.]+$}{};

I think you can make this simpler by capturing both the basename and the
extension in one go.  For example,

  $fname =~ /(.*)(\.[^.]+)$/;
  $filenoext = $1;
  $ext = $2;

so you avoid the second =~ statement.

> +        if (-e "$filenoext.l")
> +        {
> +            AddFileConditional($self, "$filenoext.l");
> +            return 1;
> +        }
> +        if (-e "$filenoext.y")
> +        {
> +            AddFileConditional($self, "$filenoext.y");

Maybe DRY like

for my $ext (".l", ".y") {
  my $file = $filenoext . $ext;
  AddFileConditional($self, $file) if -f $file;
  return 1;
}

Note: comment says "check if a .l file" and then checks both .l and .y.
Probably want to update the comment ... 



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Dave Cramer
Дата:
Сообщение: Re: Making cancellations safe
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: Prevent printing "next step instructions" in initdb and pg_upgrade