Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fuKIv-0001Uk-5S for pgsql-docs@arkaria.postgresql.org; Mon, 27 Aug 2018 16:23:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fuKIs-0005AP-Ae for pgsql-docs@arkaria.postgresql.org; Mon, 27 Aug 2018 16:23:46 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fuKIr-0005AA-Sz for pgsql-docs@lists.postgresql.org; Mon, 27 Aug 2018 16:23:46 +0000 Received: from mail-io0-x244.google.com ([2607:f8b0:4001:c06::244]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fuKIn-0003vP-K6 for pgsql-docs@postgresql.org; Mon, 27 Aug 2018 16:23:44 +0000 Received: by mail-io0-x244.google.com with SMTP id e12-v6so13264842iok.12 for ; Mon, 27 Aug 2018 09:23:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telsasoft-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:subject:message-id:mime-version:content-disposition :user-agent; bh=nft73yFEffbjTrfF8cOLx/OZLvzJe+Hx+tLgqCpp95w=; b=CTbTRZ3HGQPicnXx9K/odsJZsVQOCV1kMYCDws95Z+agGsqh/ybhCihYhlK4Yp3LZl V/8pvtNKQPlIPaNUXndzTq/l2xpR68pWFf4klcfpGeoupnVbN8oZocLGsy9WqN1nYJsm 4HlJYjWgHmpWLfwmJmoH8y++y22g3vhudSW1bmM99ILdhoCPZx2Ktsu0iYZ1q/pIt2c5 K1/Lr0TJa08tPVxAvqqwbpvcfOzV0rMLkKSEYCvsmGt/jxUXL+pd7FKt/gJNmMtPRUY9 oulLwsjrWO57eVxsD/fkiU4558VlIvKxKJjEGYrnunrScr/2sXDdAzHq7a9PUSE7Mec5 ViEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-disposition:user-agent; bh=nft73yFEffbjTrfF8cOLx/OZLvzJe+Hx+tLgqCpp95w=; b=X6JZs2Gyl5s1YAYNLSzBvs1kqWVjMJP6gmlmXJ+ys7lniIMwThYlRh7de6s0NHiv+J SeVBz19VWDDNS9WY9ArWJgM+aulJfZ+iqoDKcJC/5dQ06u7HM8r9rvNYo+TdKPaz7CL8 ApT/zuC2oOX1G2AarZLswZcCRN10QN7shSWn0mI9A9dVrf63MvG2Ez6Ra7V10JdTxxbL 7Jpmlg+AcZS//JYo/68cDYwPi3Loxh8EMV/EaemH6bZaPagkqQDhmfQL7ydnZxpLoFec WVLk/jBpT4+nCS32o9pW07VwxBig57vER/0YOJ5+CCMY9GHOykIsz7K24ALG0Ux37Cu7 vusA== X-Gm-Message-State: APzg51AZscJS3RLEWldy1mpWMn2XJbF1VtIOwfuMkMk/mk/WHsghjCpm YPZHt/dwNfcxUm5Wbc/RPOKwclN9ltg= X-Google-Smtp-Source: ANB0VdYtjew3FxOxJawcZO/nPLTUe5sA3irrInx3GAe8LJX+U6vfegNq2QLmiVzayN6jyn3fCbNAzw== X-Received: by 2002:a6b:c852:: with SMTP id y79-v6mr11217209iof.303.1535387020257; Mon, 27 Aug 2018 09:23:40 -0700 (PDT) Received: from pryzbyj (charmander.telsasoft.com. [50.244.222.1]) by smtp.gmail.com with ESMTPSA id n142-v6sm5027514itb.3.2018.08.27.09.23.39 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Aug 2018 09:23:39 -0700 (PDT) Received: by pryzbyj (Postfix, from userid 1000) id D96DD805781; Mon, 27 Aug 2018 11:23:37 -0500 (CDT) Date: Mon, 27 Aug 2018 11:23:37 -0500 From: Justin Pryzby To: pgsql-docs@postgresql.org Subject: remove duplicated words in comments .. across lines Message-ID: <20180827162337.GA7954@telsasoft.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="ZPt4rx8FFjLCG7dd" Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --ZPt4rx8FFjLCG7dd Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Inspired by David's patch [0], find attached fixing words duplicated, across line boundaries. I should probably just call the algorithm proprietary, but if you really wanted to know, I've suffered again through sed's black/slashes. time find . -name '*.c' -o -name '*.h' |xargs sed -srn '/\/\*/!d; :l; /\*\//!{N; b l}; s/\n[[:space:]]*\*/\n/g; /(\<[[:alpha:]]{1,})\>\n[[:space:]]*\<\1\>/!d; s//>>&<\n[[:space:]]*\<\1\>/!d; s//>>&<parent. The root page is never released, to - * to prevent conflict with vacuum process. + * prevent conflict with vacuum process. */ static void ginFindParents(GinBtree btree, GinBtreeStack *stack) diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c index 4aff6cf7f2..3f778093cb 100644 --- a/src/backend/access/transam/twophase.c +++ b/src/backend/access/transam/twophase.c @@ -1737,7 +1737,7 @@ RecreateTwoPhaseFile(TransactionId xid, void *content, int len) * possible that GXACTs that were valid at checkpoint start will no longer * exist if we wait a little bit. With typical checkpoint settings this * will be about 3 minutes for an online checkpoint, so as a result we - * we expect that there will be no GXACTs that need to be copied to disk. + * expect that there will be no GXACTs that need to be copied to disk. * * If a GXACT remains valid across multiple checkpoints, it will already * be on disk so we don't bother to repeat that write. diff --git a/src/backend/access/transam/xlogarchive.c b/src/backend/access/transam/xlogarchive.c index 5c6de4989c..4a039b1190 100644 --- a/src/backend/access/transam/xlogarchive.c +++ b/src/backend/access/transam/xlogarchive.c @@ -422,7 +422,7 @@ ExecuteRecoveryCommand(const char *command, const char *commandName, bool failOn /* * A file was restored from the archive under a temporary filename (path), * and now we want to keep it. Rename it under the permanent filename in - * in pg_wal (xlogfname), replacing any existing file with the same name. + * pg_wal (xlogfname), replacing any existing file with the same name. */ void KeepFileRestoredFromArchive(const char *path, const char *xlogfname) diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c index 3e148f03d0..1262594058 100644 --- a/src/backend/commands/analyze.c +++ b/src/backend/commands/analyze.c @@ -2898,7 +2898,7 @@ analyze_mcv_list(int *mcv_counts, * significantly more common than the estimated selectivity they would * have if they weren't in the list. All non-MCV values are assumed to be * equally common, after taking into account the frequencies of all the - * the values in the MCV list and the number of nulls (c.f. eqsel()). + * values in the MCV list and the number of nulls (c.f. eqsel()). * * Here sumcount tracks the total count of all but the last (least common) * value in the MCV list, allowing us to determine the effect of excluding diff --git a/src/backend/commands/seclabel.c b/src/backend/commands/seclabel.c index 5ee46905d8..1ac7756f2a 100644 --- a/src/backend/commands/seclabel.c +++ b/src/backend/commands/seclabel.c @@ -321,7 +321,7 @@ SetSharedSecurityLabel(const ObjectAddress *object, /* * SetSecurityLabel attempts to set the security label for the specified * provider on the specified object to the given value. NULL means that any - * any existing label should be deleted. + * existing label should be deleted. */ void SetSecurityLabel(const ObjectAddress *object, diff --git a/src/backend/libpq/be-secure-openssl.c b/src/backend/libpq/be-secure-openssl.c index 1b659a5870..65f2ba85fe 100644 --- a/src/backend/libpq/be-secure-openssl.c +++ b/src/backend/libpq/be-secure-openssl.c @@ -956,7 +956,7 @@ info_cb(const SSL *ssl, int type, int args) * precomputed. * * Since few sites will bother to create a parameter file, we also - * also provide a fallback to the parameters provided by the + * provide a fallback to the parameters provided by the * OpenSSL project. * * These values can be static (once loaded or computed) since the diff --git a/src/backend/partitioning/partprune.c b/src/backend/partitioning/partprune.c index 0dd55ac1ba..d241d9b3f9 100644 --- a/src/backend/partitioning/partprune.c +++ b/src/backend/partitioning/partprune.c @@ -2483,7 +2483,7 @@ get_matching_range_bounds(PartitionPruneContext *context, /* * If the query does not constrain all key columns, we'll need to scan the - * the default partition, if any. + * default partition, if any. */ if (nvalues < partnatts) result->scan_default = partition_bound_has_default(boundinfo); diff --git a/src/backend/storage/ipc/barrier.c b/src/backend/storage/ipc/barrier.c index 00ab57c0f6..bcfe87b854 100644 --- a/src/backend/storage/ipc/barrier.c +++ b/src/backend/storage/ipc/barrier.c @@ -115,7 +115,7 @@ BarrierInit(Barrier *barrier, int participants) * * While waiting, pg_stat_activity shows a wait_event_class and wait_event * controlled by the wait_event_info passed in, which should be a value from - * from one of the WaitEventXXX enums defined in pgstat.h. + * one of the WaitEventXXX enums defined in pgstat.h. * * Return true in one arbitrarily chosen participant. Return false in all * others. The return code can be used to elect one participant to execute a diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c index 017cc1a7b1..4f3d1f8872 100644 --- a/src/backend/utils/adt/datetime.c +++ b/src/backend/utils/adt/datetime.c @@ -1144,7 +1144,7 @@ DecodeDateTime(char **field, int *ftype, int nf, * Is this a YMD or HMS specification, or a year number? * YMD and HMS are required to be six digits or more, so * if it is 5 digits, it is a year. If it is six or more - * more digits, we assume it is YMD or HMS unless no date + * digits, we assume it is YMD or HMS unless no date * and no time values have been specified. This forces 6+ * digit years to be at the end of the string, or to use * the ISO date specification. --ZPt4rx8FFjLCG7dd--