force use of pandoc version >= 3.1.12.2
The `bin/pandoc-wrapper.sh` tool will verify that the ssytem has a recent enough version of `pandoc(1)`. We explain why we insist on `pandoc(1)`. version >= 3.1.12.2 in comments where the $PANDOC_MIN_VERSION is set. Added `--wrap=preserve` as a default argument to `pandoc(1)`. While this change will impact every HTML file generated, we believe this will improve the ability of someone to look at the generated HTML and correlate with the original markdown. Changed `bin/pandoc-wrapper.sh` VERSION from "1.4.2 2024-03-17" to "1.4.3 2024-03-18". Performed `make www` to achieve all of the above and to generate HTML using the new `--wrap=preserve` `pandoc(1)` mode.
This commit is contained in:
1 parent
9eb7a54e9f
commit
b0b212acb1
402 files changed
+37061
-55132
No files matched your search
+110
-147
@@ -129,9 +129,9 @@
|
||||
|
||||
<h2 id="author"><a name="author"></a>Author:</h2>
|
||||
<ul>
|
||||
<li>Name: <a href="../../authors.html#Jens_Schweikhardt">Jens
|
||||
Schweikhardt</a><br> Location: <a href="../../location.html#DE">DE</a> -
|
||||
<em>Federal Republic of Germany</em> (<em>Germany</em>) <br><br></li>
|
||||
<li>Name: <a href="../../authors.html#Jens_Schweikhardt">Jens Schweikhardt</a><br>
|
||||
Location: <a href="../../location.html#DE">DE</a> - <em>Federal Republic of Germany</em> (<em>Germany</em>)
|
||||
<br><br></li>
|
||||
</ul>
|
||||
|
||||
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
|
||||
@@ -146,49 +146,43 @@ Schweikhardt</a><br> Location: <a href="../../location.html#DE">DE</a> -
|
||||
the same size (on systems where `sizeof (char *) == 4`, or `4096` when
|
||||
`sizeof (char *) == 8`), increase the manifest constant 32767 on line
|
||||
31.</code></pre>
|
||||
<p>An alternate version allows one to fix this; see <a
|
||||
href="#alternate-code">alternate code</a> below.</p>
|
||||
<p>An alternate version allows one to fix this; see <a href="#alternate-code">alternate
|
||||
code</a> below.</p>
|
||||
<h2 id="to-use">To use:</h2>
|
||||
<p>If <code>dir</code> is the directory (or a directory tree) where you
|
||||
keep all your favorite pictures off the Internet or from
|
||||
<p>If <code>dir</code> is the directory (or a directory tree) where you keep
|
||||
all your favorite pictures off the Internet or from
|
||||
<code>alt.binaries.pictures.*</code>, do</p>
|
||||
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="fu">find</span> dir <span class="at">-type</span> f <span class="at">-print</span> <span class="kw">|</span> <span class="ex">./samefile</span></span></code></pre></div>
|
||||
<p>Maybe you will not need to buy another 10 GB disk to store them.
|
||||
:-)</p>
|
||||
<p>Maybe you will not need to buy another 10 GB disk to store them. :-)</p>
|
||||
<h2 id="try">Try:</h2>
|
||||
<p>If you’re in this winning entry’s directory:</p>
|
||||
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
|
||||
<p>Notice that the tool finds some files that are duplicates.</p>
|
||||
<h2 id="alternate-code">Alternate code:</h2>
|
||||
<p>If you run into the problem that the author described (above) you can
|
||||
redefine the size as described; this was done with the <code>SZ</code>
|
||||
macro defined in the Makefile which if (in the code) is unset will be
|
||||
set to the default, 32767.</p>
|
||||
<p>If you run into the problem that the author described (above) you can redefine
|
||||
the size as described; this was done with the <code>SZ</code> macro defined in the Makefile
|
||||
which if (in the code) is unset will be set to the default, 32767.</p>
|
||||
<h3 id="alternate-build">Alternate build:</h3>
|
||||
<p>If you wish to change the size to say, 55555:</p>
|
||||
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber SIZE=55555 alt</span></code></pre></div>
|
||||
<p>or whatever you wish to redefine it to.</p>
|
||||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||||
<p>This program is not as smart as to detect identity of JPEG files with
|
||||
the same picture but with different compression levels. On the other
|
||||
hand compression can make a thing look/sound/feel different so these
|
||||
probably aren’t duplicates anyway. :-)</p>
|
||||
<p>Some time after this entry won, the Internet Systems Consortium (ISC)
|
||||
added the samefile utility to its treasure of software gems! See the
|
||||
author’s page about the tool as well at <a
|
||||
href="http://www.schweikhardt.net/samefile"
|
||||
class="uri">http://www.schweikhardt.net/samefile</a>.</p>
|
||||
<p>This program is not as smart as to detect identity of JPEG files with the same
|
||||
picture but with different compression levels. On the other hand compression can
|
||||
make a thing look/sound/feel different so these probably aren’t duplicates
|
||||
anyway. :-)</p>
|
||||
<p>Some time after this entry won, the Internet Systems Consortium (ISC) added the
|
||||
samefile utility to its treasure of software gems! See the author’s page about
|
||||
the tool as well at <a href="http://www.schweikhardt.net/samefile" class="uri">http://www.schweikhardt.net/samefile</a>.</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<p>The source is expected to conform to IEEE Std 1003.1-1990 (“POSIX”).
|
||||
Thank God the IEEE does not standardize a coding style…</p>
|
||||
<h3 id="what-this-program-does">What this program does</h3>
|
||||
<p>This is best explained in the man page. The troff source for this man
|
||||
page can be found in the file <a href="samefile.1">samefile.1</a>. To
|
||||
render try:</p>
|
||||
<p>This is best explained in the man page. The troff source for this
|
||||
man page can be found in the file <a href="samefile.1">samefile.1</a>. To render try:</p>
|
||||
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="kw">`</span><span class="fu">man</span> ./samefile.1</span></code></pre></div>
|
||||
<p>Otherwise:</p>
|
||||
<h3 id="samefile1-user-manuals-samefile1">SAMEFILE(1) User Manuals
|
||||
SAMEFILE(1)</h3>
|
||||
<h3 id="samefile1-user-manuals-samefile1">SAMEFILE(1) User Manuals SAMEFILE(1)</h3>
|
||||
<h4 id="name">NAME</h4>
|
||||
<p><code>samefile</code> - find identical files</p>
|
||||
<h4 id="synopsis">SYNOPSIS</h4>
|
||||
@@ -196,34 +190,34 @@ SAMEFILE(1)</h3>
|
||||
<h4 id="description">DESCRIPTION</h4>
|
||||
<p><code>samefile</code> reads a list of file names (one file name per
|
||||
line) from <code>stdin</code>. For each file name pair with identical
|
||||
contents, a line consisting of six tab separated fields is output: The
|
||||
size in bytes, two file names, the character <code>=</code> if the two
|
||||
files are on the same device, <code>X</code> otherwise, and the link
|
||||
counts of the two files. The output is sorted in reverse order by
|
||||
size.</p>
|
||||
<p><code>samefile</code> uses two stages to give optimum
|
||||
performance.</p>
|
||||
<p>In the first stage, all non-plain files are silently ignored
|
||||
(directories, devices, FIFOs, sockets, symbolic links) as well as files
|
||||
for which <code>stat(2)</code> or <code>open(2)</code> fails. The result
|
||||
of the first stage (the file names) is written into a binary tree with
|
||||
one node for every file size. Each node is in turn a linked list of file
|
||||
names along with inode and device information. It is also at this first
|
||||
stage where checks for hard links are done. For any inode only one
|
||||
filename will be added to the binary tree.</p>
|
||||
<p>In the second stage all files having the same size are compared
|
||||
against each other. The rules of mathematical logic are applied to
|
||||
reduce work and output noise: if files <code>A</code>, <code>B</code>,
|
||||
and <code>C</code> have the same size and samefile finds that
|
||||
<code>A = B</code> and <code>A = C</code> then it will not compare
|
||||
<code>B</code> against <code>C</code> (and will not output a line for
|
||||
<code>B</code> and <code>C</code>) but only for <code>A = B</code> and
|
||||
<code>A = C</code>. The algorithm will detect equality across
|
||||
arbitrarily long chains. Note however, that because only the first
|
||||
filename per inode gets into the first stage, the output for a group of
|
||||
identical files with different inode numbers is also minimized. Suppose
|
||||
you have six identical files of size 100 in an inode group consisting of
|
||||
the three inodes with numbers 10, 20 and 30:</p>
|
||||
contents, a line consisting of six tab separated fields is
|
||||
output: The size in bytes, two file names, the character
|
||||
<code>=</code> if the two files are on the same device, <code>X</code> otherwise,
|
||||
and the link counts of the two files. The output
|
||||
is sorted in reverse order by size.</p>
|
||||
<p><code>samefile</code> uses two stages to give optimum performance.</p>
|
||||
<p>In the first stage, all non-plain files are silently
|
||||
ignored (directories, devices, FIFOs, sockets, symbolic
|
||||
links) as well as files for which <code>stat(2)</code> or <code>open(2)</code>
|
||||
fails. The result of the first stage (the file names) is
|
||||
written into a binary tree with one node for every file
|
||||
size. Each node is in turn a linked list of file names
|
||||
along with inode and device information. It is also at
|
||||
this first stage where checks for hard links are done.
|
||||
For any inode only one filename will be added to the
|
||||
binary tree.</p>
|
||||
<p>In the second stage all files having the same size are
|
||||
compared against each other. The rules of mathematical
|
||||
logic are applied to reduce work and output noise: if
|
||||
files <code>A</code>, <code>B</code>, and <code>C</code> have the same size and samefile finds
|
||||
that <code>A = B</code> and <code>A = C</code> then it will not compare <code>B</code> against <code>C</code>
|
||||
(and will not output a line for <code>B</code> and <code>C</code>) but only for <code>A = B</code> and <code>A = C</code>. The algorithm will detect equality across
|
||||
arbitrarily long chains. Note however, that because only
|
||||
the first filename per inode gets into the first stage,
|
||||
the output for a group of identical files with different
|
||||
inode numbers is also minimized. Suppose you have six
|
||||
identical files of size 100 in an inode group consisting
|
||||
of the three inodes with numbers 10, 20 and 30:</p>
|
||||
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ls <span class="at">-i</span> <span class="co"># output edited for readability:</span></span>
|
||||
<span id="cb8-2"><a href="#cb8-2" aria-hidden="true" tabindex="-1"></a> <span class="ex">10</span> file1 20 file4 30 file6</span>
|
||||
<span id="cb8-3"><a href="#cb8-3" aria-hidden="true" tabindex="-1"></a> <span class="ex">10</span> file2 20 file5</span>
|
||||
@@ -231,135 +225,104 @@ the three inodes with numbers 10, 20 and 30:</p>
|
||||
<span id="cb8-5"><a href="#cb8-5" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ls <span class="kw">|</span> <span class="ex">./samefile</span></span>
|
||||
<span id="cb8-6"><a href="#cb8-6" aria-hidden="true" tabindex="-1"></a><span class="ex">100</span> file1 file4 = 3 2</span>
|
||||
<span id="cb8-7"><a href="#cb8-7" aria-hidden="true" tabindex="-1"></a><span class="ex">100</span> file1 file6 = 3 1</span></code></pre></div>
|
||||
<p>The sum of the sizes in the first column is the amount of disk space
|
||||
you could gain by making all 6 files links to only one file or remove
|
||||
all but one of the files. To be precise, disk space is allocated in
|
||||
blocks - you will probably gain two blocks here, rather than 200 bytes.
|
||||
Note that it is not enough to just remove <code>file4</code> and
|
||||
<code>file6</code> (you would gain only 100 bytes because
|
||||
<code>file5</code> still exists.)</p>
|
||||
<p>The sum of the sizes in the first column is the amount of
|
||||
disk space you could gain by making all 6 files links to
|
||||
only one file or remove all but one of the files. To be
|
||||
precise, disk space is allocated in blocks - you will
|
||||
probably gain two blocks here, rather than 200 bytes.
|
||||
Note that it is not enough to just remove <code>file4</code> and <code>file6</code>
|
||||
(you would gain only 100 bytes because <code>file5</code> still
|
||||
exists.)</p>
|
||||
<h4 id="limitations">LIMITATIONS</h4>
|
||||
<p><code>samefile</code> was written with no limits in mind. The number
|
||||
of input lines is unlimited. The size of the actual files is only
|
||||
limited by available virtual memory needed to compare one pair of files.
|
||||
The only hard limit is the constraint that there should not be more than
|
||||
about <code>8192</code> files having the same size. Experience has shown
|
||||
that there are rarely more than a couple dozen files of the same
|
||||
size.</p>
|
||||
<p><code>samefile</code> was written with no limits in mind. The number of
|
||||
input lines is unlimited. The size of the actual files is
|
||||
only limited by available virtual memory needed to compare
|
||||
one pair of files. The only hard limit is the constraint
|
||||
that there should not be more than about <code>8192</code> files having
|
||||
the same size. Experience has shown that there are rarely
|
||||
more than a couple dozen files of the same size.</p>
|
||||
<h4 id="examples">EXAMPLES</h4>
|
||||
<p>For everybody:</p>
|
||||
<p>What are the duplicates under my home directory?</p>
|
||||
<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="fu">find</span> <span class="va">$HOME</span> <span class="kw">|</span> <span class="ex">./samefile</span></span></code></pre></div>
|
||||
<p>For the sysadmin folks:</p>
|
||||
<p>Report all duplicate files under /usr larger than 16k:</p>
|
||||
<div class="sourceCode" id="cb10"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="fu">find</span> /usr <span class="at">-size</span> +16384c <span class="at">-a</span> <span class="at">-type</span> f <span class="kw">|</span> <span class="ex">./samefile</span></span></code></pre></div>
|
||||
<p>For the ftp and WWW admins: How much space is wasted below our site’s
|
||||
/pub directory?</p>
|
||||
<div class="sourceCode" id="cb11"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="fu">find</span> /pub <span class="at">-type</span> f <span class="kw">|</span> <span class="ex">samefile</span> <span class="kw">|</span> <span class="fu">awk</span> <span class="st">'{sum += $1} END {print sum}'</span></span></code></pre></div>
|
||||
<div class="sourceCode" id="cb10"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="fu">find</span> /usr <span class="at">-size</span> +16384c <span class="at">-a</span> <span class="at">-type</span> f <span class="kw">|</span> <span class="ex">./samefile</span></span></code></pre></div>
|
||||
<p>For the ftp and WWW admins:
|
||||
How much space is wasted below our site’s /pub directory?</p>
|
||||
<div class="sourceCode" id="cb11"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="fu">find</span> /pub <span class="at">-type</span> f <span class="kw">|</span> <span class="ex">samefile</span> <span class="kw">|</span> <span class="fu">awk</span> <span class="st">'{sum += $1} END {print sum}'</span></span></code></pre></div>
|
||||
<h4 id="exit-status">EXIT STATUS</h4>
|
||||
<p>If <code>samefile</code> runs out of memory the exit status is 1,
|
||||
zero otherwise.</p>
|
||||
<p>If <code>samefile</code> runs out of memory the exit status is 1, zero
|
||||
otherwise.</p>
|
||||
<h4 id="see-also">SEE ALSO</h4>
|
||||
<p><code>find(1)</code>, <code>ln(1)</code>, <code>rm(1)</code></p>
|
||||
<h3 id="why-i-think-it-is-obfuscated">Why I think it is obfuscated</h3>
|
||||
<ul>
|
||||
<li>The code is commented but this gives only an <em>extremely</em>
|
||||
faint clue.</li>
|
||||
<li>The code is commented but this gives only an <em>extremely</em> faint clue.</li>
|
||||
<li>The layout does not reflect the program structure, or does it?</li>
|
||||
<li>The data structure the program builds is an ordered binary tree
|
||||
where each node consists of a linked list. This is probably too heavy to
|
||||
comprehend for N percent of all programmers ;-)</li>
|
||||
where each node consists of a linked list. This is probably too
|
||||
heavy to comprehend for N percent of all programmers ;-)</li>
|
||||
<li>The tree is built and traversed by recursive function calls.</li>
|
||||
<li>Why does this program look at <code>dev_t</code> and
|
||||
<code>ino_t</code>? Heavy wizardry.</li>
|
||||
<li>Can you find out how the algorithm works that detects identity of
|
||||
files across arbitrarily long chains? In my private unobfuscated source
|
||||
there are 17 lines describing just that. A classical case for the well
|
||||
known <code>/* You're not supposed to understand this */</code>
|
||||
comment.</li>
|
||||
<li>Why does this program look at <code>dev_t</code> and <code>ino_t</code>? Heavy wizardry.</li>
|
||||
<li>Can you find out how the algorithm works that detects identity
|
||||
of files across arbitrarily long chains? In my private unobfuscated
|
||||
source there are 17 lines describing just that. A classical case for
|
||||
the well known <code>/* You're not supposed to understand this */</code> comment.</li>
|
||||
<li>Would Dijkstra consider this <code>goto</code> harmful?</li>
|
||||
<li>The only string literal is split in more than a dozen
|
||||
substrings.</li>
|
||||
<li>The only string literal is split in more than a dozen substrings.</li>
|
||||
<li>For the task at hand the code is pretty terse. Some dynamic memory
|
||||
is even freed as soon as it’s no longer needed. I have tried to make the
|
||||
preprocessor directives as short as possible. This means no spaces after
|
||||
<code>#include</code> and no spaces after some of the macro names.</li>
|
||||
is even freed as soon as it’s no longer needed. I have tried to
|
||||
make the preprocessor directives as short as possible. This means
|
||||
no spaces after <code>#include</code> and no spaces after some of the macro
|
||||
names.</li>
|
||||
</ul>
|
||||
<p>Are you an algorithms guru? If so you should know why the output
|
||||
appears sorted without any use of <code>qsort(3)</code> or
|
||||
<code>system("sort")</code>.</p>
|
||||
<p>Rewrite (hah!) the program to use memory mapping of files instead of
|
||||
<code>read(2)</code>. Does this affect performance noticeably?</p>
|
||||
<p>It’s easy to write a script that takes <code>samefile</code>’s output
|
||||
and hard links (or symlinks) identical files. Writing such a script is
|
||||
appears sorted without any use of <code>qsort(3)</code> or <code>system("sort")</code>.</p>
|
||||
<p>Rewrite (hah!) the program to use memory mapping of files instead
|
||||
of <code>read(2)</code>. Does this affect performance noticeably?</p>
|
||||
<p>It’s easy to write a script that takes <code>samefile</code>’s output and
|
||||
hard links (or symlinks) identical files. Writing such a script is
|
||||
left as an exercise for the deobfuscator.</p>
|
||||
<p>When you run <code>samefile</code> on some directory tree, try to
|
||||
estimate how much you think it will find. Is the actual result anywhere
|
||||
<p>When you run <code>samefile</code> on some directory tree, try to estimate
|
||||
how much you think it will find. Is the actual result anywhere
|
||||
near your estimate? How many copies of the GPL <code>COPYING</code> file
|
||||
are there on your filesystems? :-)</p>
|
||||
<p>In the remote event that the input has more than <code>8192</code>
|
||||
files with the same size (on systems where
|
||||
<code>sizeof (char *) == 4</code>, or <code>4096</code> when
|
||||
<code>sizeof (char *) == 8</code>), increase the manifest constant 32767
|
||||
on line 31.</p>
|
||||
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
|
||||
License:</h2>
|
||||
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
|
||||
Reserved. You are free to share and adapt this file under the terms of
|
||||
this license:</p>
|
||||
<p>In the remote event that the input has more than <code>8192</code> files with
|
||||
the same size (on systems where <code>sizeof (char *) == 4</code>, or <code>4096</code> when
|
||||
<code>sizeof (char *) == 8</code>), increase the manifest constant 32767 on line
|
||||
31.</p>
|
||||
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
|
||||
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
You are free to share and adapt this file under the terms of this license:</p>
|
||||
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
|
||||
<p>For more information, see:
|
||||
https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||||
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
|
||||
|
||||
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
|
||||
|
||||
<h1 id="inventory-for-1998schweikh3"><a name="inventory"></a>Inventory
|
||||
for 1998/schweikh3</h1>
|
||||
<h1 id="inventory-for-1998schweikh3"><a name="inventory"></a>Inventory for 1998/schweikh3</h1>
|
||||
<p><a href="#top">Jump to top</a></p>
|
||||
<h2 id="primary-files">Primary files</h2>
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/schweikh3.c">schweikh3.c</a>
|
||||
- entry source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/Makefile">Makefile</a>
|
||||
- entry Makefile</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/schweikh3.alt.c">schweikh3.alt.c</a>
|
||||
- alternative source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/schweikh3.orig.c">schweikh3.orig.c</a>
|
||||
- original source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/samefile.1.dupe">samefile.1.dupe</a>
|
||||
- samefile man page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/samefile.1">samefile.1</a>
|
||||
- samefile man page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/try.sh">try.sh</a>
|
||||
- how to run</li>
|
||||
<li><a href="1998_schweikh3.tar.bz2">1998_schweikh3.tar.bz2</a> -
|
||||
download entry source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/schweikh3.c">schweikh3.c</a> - entry source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/Makefile">Makefile</a> - entry Makefile</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/schweikh3.alt.c">schweikh3.alt.c</a> - alternative source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/schweikh3.orig.c">schweikh3.orig.c</a> - original source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/samefile.1.dupe">samefile.1.dupe</a> - samefile man page</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/samefile.1">samefile.1</a> - samefile man page</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/try.sh">try.sh</a> - how to run</li>
|
||||
<li><a href="1998_schweikh3.tar.bz2">1998_schweikh3.tar.bz2</a> - download entry source</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/.gitignore">.gitignore</a>
|
||||
- list of files that should not be committed under git</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/.entry.json">.entry.json</a> - description of entry in JSON</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
|
||||
<li><a href=".path">.path</a> - directory path from top directory</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/README.md">README.md</a>
|
||||
- markdown source for index.html</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/README.md">README.md</a> - markdown source for index.html</li>
|
||||
</ul>
|
||||
|
||||
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
|
||||
|
||||
Reference in new issue
Block a user