Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #156943 > unrolled thread

Programming exercise/challenge

Started byTim Rentsch <tr.17687@z991.linuxsc.com>
First post2020-12-05 08:25 -0800
Last post2021-01-06 23:07 -0800
Articles 20 on this page of 399 — 24 participants

Back to article view | Back to comp.lang.c


Contents

  Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-05 08:25 -0800
    Re: Programming exercise/challenge Sjouke Burry <burrynulnulfour@ppllaanneett.nnll> - 2020-12-05 17:33 +0100
      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-06 11:58 -0800
      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-30 09:40 -0800
        Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-30 18:20 +0000
          Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-31 01:04 -0800
          Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2021-01-02 22:05 +0300
            Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2021-01-02 14:48 -0500
              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-02 19:17 -0800
            Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-02 19:04 -0800
        Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-30 21:44 +0000
          Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-31 02:54 +0000
          Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-03 09:49 -0800
            Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2021-01-04 00:15 +0300
              Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-03 21:57 +0000
                Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2021-01-03 23:00 +0000
                  Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-04 00:00 +0000
              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-04 20:04 -0800
                Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-05 07:15 +0000
                  Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-07 22:30 -0800
            Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-04 18:42 +0000
              Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-04 21:23 +0000
                Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-04 23:41 +0000
    Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-05 16:39 +0000
      Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-05 16:58 +0000
        Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-05 17:08 +0000
        Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-05 17:11 +0000
          Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-05 17:24 +0000
            Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-05 17:52 +0000
              Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-05 18:30 +0000
              Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-05 19:56 +0000
                Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-06 14:51 +0000
        Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-05 17:49 +0000
          Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-05 18:34 +0000
        Re: Programming exercise/challenge Bonita Montero <Bonita.Montero@gmail.com> - 2020-12-05 19:40 +0100
          Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-05 18:47 +0000
            Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-05 23:19 +0000
              Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-05 23:56 +0000
              Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-08 02:26 +0000
                Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-08 16:04 +0300
                  Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-08 23:39 -0800
                    Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-12 23:34 +0300
                      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-12 19:28 -0800
                      Re: Programming exercise/challenge kegs@provalid.com (Kent Dickey) - 2020-12-29 10:34 -0600
                        Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-29 20:05 -0800
      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-06 06:03 -0800
    Re: Programming exercise/challenge dfs <nospam@dfs.com> - 2020-12-05 13:58 -0500
      Re: Programming exercise/challenge Jorgen Grahn <grahn+nntp@snipabacken.se> - 2020-12-05 21:37 +0000
        Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-06 06:13 -0800
          Re: Programming exercise/challenge jacobnavia <jacob@jacob.remcomp.fr> - 2020-12-06 18:00 +0100
            Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-06 12:31 -0800
      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-06 06:26 -0800
    Re: Programming exercise/challenge jacobnavia <jacob@jacob.remcomp.fr> - 2020-12-05 23:32 +0100
      Re: Programming exercise/challenge jacobnavia <jacob@jacob.remcomp.fr> - 2020-12-06 17:18 +0100
        Re: Programming exercise/challenge jacobnavia <jacob@jacob.remcomp.fr> - 2020-12-06 17:51 +0100
        Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-06 22:27 +0000
          Re: Programming exercise/challenge jacobnavia <jacob@jacob.remcomp.fr> - 2020-12-07 09:37 +0100
            Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-07 07:36 -0500
              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-08 22:49 -0800
    Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-06 17:51 +0000
      Re: Programming exercise/challenge dfs <nospam@dfs.com> - 2020-12-06 13:03 -0500
        Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-06 23:53 +0000
      Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-06 19:53 +0000
        Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-06 23:38 +0000
          Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-07 00:17 +0000
            Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-07 02:09 +0000
      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-07 01:03 -0800
        Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-07 12:05 +0000
          Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-07 12:25 +0000
            Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-07 13:33 +0000
              Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-07 14:18 +0000
                Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-07 14:31 +0000
                  Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-07 12:58 -0500
                    Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-08 23:03 -0800
                Re: Programming exercise/challenge Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-12-07 07:12 -0800
                Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-07 21:55 +0000
                Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-08 22:59 -0800
            Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-08 22:55 -0800
              Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-09 07:45 -0500
                Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-24 11:26 -0800
                  Re: Programming exercise/challenge Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-12-24 12:24 -0800
                    Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-24 17:19 -0500
                      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-27 05:16 -0800
                    Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-27 04:17 -0800
                      Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-27 08:27 -0500
                        Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-29 19:18 -0800
          Re: Programming exercise/challenge Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-12-07 05:15 -0800
            Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-07 13:42 +0000
          Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-08 22:53 -0800
          Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-10 01:49 -0800
            Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-10 22:35 +0000
              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-10 21:17 -0800
                Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-12 21:44 +0000
                  Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-12 19:46 -0800
                    Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-13 12:21 +0000
                      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-24 11:35 -0800
                        Re: Programming exercise/challenge Rosario19 <Ros@invalid.invalid> - 2020-12-31 00:46 +0100
                          Re: Programming exercise/challenge Rosario19 <Ros@invalid.invalid> - 2020-12-31 00:52 +0100
                            Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-31 00:34 -0800
                              Re: Programming exercise/challenge Rosario19 <Ros@invalid.invalid> - 2021-01-01 08:23 +0100
                                Re: Programming exercise/challenge Rosario19 <Ros@invalid.invalid> - 2021-01-01 10:09 +0100
                                  Re: Programming exercise/challenge Rosario19 <Ros@invalid.invalid> - 2021-01-01 11:38 +0100
                                    Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-01 08:24 -0800
        Re: Programming exercise/challenge "james...@alumni.caltech.edu" <jameskuyper@alumni.caltech.edu> - 2020-12-07 07:03 -0800
          Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-08 02:16 +0300
            Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-09 02:39 +0300
              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-08 23:18 -0800
            Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-08 23:17 -0800
    Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-08 00:27 +0300
      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-08 23:20 -0800
    Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-07 13:44 -0800
      Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-07 14:01 -0800
      Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-07 22:16 +0000
        Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-07 15:10 -0800
          Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-08 01:07 +0000
        Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-08 00:34 +0000
      Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-08 18:17 -0800
        Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-09 00:56 -0800
          Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-09 02:30 -0800
            Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-09 15:14 -0800
              Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-09 15:44 -0800
              Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-12 23:56 +0300
                Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-12 13:29 -0800
                  Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-13 00:46 +0300
                    Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-12 13:59 -0800
                  Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-13 14:17 +0300
                    Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-13 12:58 -0800
                      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-13 20:57 -0800
                        Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-14 20:44 -0800
                          Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-23 11:15 -0800
                            Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-23 23:45 +0300
                              Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-23 21:36 -0800
                                Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-24 09:11 -0800
                                  Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-24 15:30 -0800
                                    Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-24 23:18 -0800
                                      Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-24 23:56 -0800
                                        Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2020-12-28 12:01 -0800
                                          Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-29 19:31 -0800
                              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-24 14:47 -0800
    Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-08 01:59 +0300
      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-08 23:26 -0800
    Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-07 19:02 -0500
      Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-08 01:15 +0000
        Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-07 20:38 -0500
          Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-08 02:19 +0000
      Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-08 11:44 +0000
        Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-08 07:32 -0500
          Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-08 14:40 +0000
            Re: Programming exercise/challenge "james...@alumni.caltech.edu" <jameskuyper@alumni.caltech.edu> - 2020-12-08 06:52 -0800
              Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-08 17:31 +0000
                Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-08 20:16 +0000
                  Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-08 20:48 +0000
                    Re: Programming exercise/challenge Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-12-08 15:34 -0800
                      Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-09 02:54 +0300
                        Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-09 12:33 +0300
                          Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-09 12:43 +0300
                            Re: Programming exercise/challenge Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-12-09 01:52 -0800
                              Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-13 00:28 +0300
                                Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-12 21:40 +0000
                                  Re: Programming exercise/challenge Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-12-12 13:48 -0800
                          Re: Programming exercise/challenge Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-12-09 01:46 -0800
                      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-08 23:29 -0800
            Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-08 10:45 -0500
            Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-08 17:16 +0000
        Re: Programming exercise/challenge "james...@alumni.caltech.edu" <jameskuyper@alumni.caltech.edu> - 2020-12-08 06:39 -0800
    Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-07 17:48 -0800
      Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-07 21:03 -0500
        Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-09 03:02 -0800
          Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-09 08:02 -0500
            Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-09 16:49 +0000
              Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-09 13:33 -0500
                Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-09 19:57 +0000
                Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-10 01:45 +0000
                  Re: Programming exercise/challenge Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2020-12-10 02:15 +0000
                    Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-24 11:24 -0800
                  Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-09 21:57 -0500
                    Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-10 03:32 +0000
                      Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-10 08:19 -0500
            Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-24 11:04 -0800
              Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-24 19:34 +0000
      Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-08 02:22 +0000
        Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-09 03:04 -0800
          Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-09 11:59 +0000
            Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-09 08:11 -0500
            Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-10 00:02 -0800
              Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-10 15:12 +0000
                Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-10 10:36 -0800
                  Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-10 22:11 +0000
                    Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-10 23:34 +0000
                    Re: Programming exercise/challenge "james...@alumni.caltech.edu" <jameskuyper@alumni.caltech.edu> - 2020-12-10 20:11 -0800
                    Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-10 21:06 -0800
      Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-09 03:03 +0300
        Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-08 21:21 -0500
          Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-09 12:50 +0300
            Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2020-12-09 08:16 -0500
        Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-08 23:32 -0800
        Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-09 12:21 +0000
          Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2021-01-02 19:15 +0000
            Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-07 01:54 -0800
              Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2021-01-22 22:36 +0000
                Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2021-01-22 23:07 +0000
                  Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-22 20:27 -0800
                    Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2021-01-23 13:05 +0000
                      Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-23 07:45 -0800
                        Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2021-01-23 16:49 +0000
                      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-23 11:22 -0800
                    Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2021-01-23 16:53 +0000
                      Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-23 09:55 -0800
                  Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-23 21:35 -0800
                    Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2021-01-24 18:17 +0000
                      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-27 07:57 -0800
                Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-23 11:28 -0800
    Re: Programming exercise/challenge "jfbod...@gmail.com" <jfbode1029@gmail.com> - 2020-12-08 11:30 -0800
      Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-08 20:31 +0000
        Re: Programming exercise/challenge jacobnavia <jacob@jacob.remcomp.fr> - 2020-12-08 22:17 +0100
      Re: Programming exercise/challenge jacobnavia <jacob@jacob.remcomp.fr> - 2020-12-08 22:15 +0100
        Re: Programming exercise/challenge "jfbod...@gmail.com" <jfbode1029@gmail.com> - 2020-12-08 13:28 -0800
          Re: Programming exercise/challenge "jfbod...@gmail.com" <jfbode1029@gmail.com> - 2020-12-09 12:05 -0800
            Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-13 00:04 +0300
        Re: Programming exercise/challenge Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2020-12-08 21:38 +0000
      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-09 03:25 -0800
    Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-09 01:00 +0000
      Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-09 03:09 +0000
        Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-13 00:35 +0300
          Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-12 22:57 +0000
            Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-12 23:43 +0000
              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-12 19:47 -0800
              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-12 23:27 -0800
                Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-12-13 14:44 +0000
                  Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-24 11:47 -0800
    Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-09 03:36 -0800
      Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-09 14:51 +0300
        Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-09 11:35 -0800
          Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-10 02:33 +0300
            Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-10 00:05 -0800
              Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-10 14:59 +0300
                Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-10 20:32 -0800
            Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-12 23:45 +0300
              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-12 19:24 -0800
          Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-13 00:17 +0300
            Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-12 19:23 -0800
      Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2020-12-09 19:31 +0000
      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-09 12:01 -0800
        Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-09 12:25 -0800
    Re: Programming exercise/challenge kegs@provalid.com (Kent Dickey) - 2020-12-23 01:00 -0600
      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-24 14:34 -0800
        Re: Programming exercise/challenge kegs@provalid.com (Kent Dickey) - 2020-12-26 23:03 -0600
          Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-27 06:29 -0800
            Re: Programming exercise/challenge kegs@provalid.com (Kent Dickey) - 2020-12-28 11:52 -0600
              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-29 00:38 -0800
          Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-28 15:29 +0300
            Re: Programming exercise/challenge kegs@provalid.com (Kent Dickey) - 2020-12-28 17:12 -0600
              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-28 23:54 -0800
          Re: Programming exercise/challenge kegs@provalid.com (Kent Dickey) - 2020-12-29 10:26 -0600
            Re: Programming exercise/challenge kegs@provalid.com (Kent Dickey) - 2020-12-29 10:37 -0600
              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-29 19:59 -0800
    Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-12-30 09:17 -0800
      Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2020-12-31 16:54 +0300
        Re: Programming exercise/challenge kegs@provalid.com (Kent Dickey) - 2020-12-31 09:16 -0600
          Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2020-12-31 15:56 +0000
            Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-07 02:41 -0800
          Re: Programming exercise/challenge Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-12-31 13:01 -0800
          Re: Programming exercise/challenge Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-12-31 14:15 -0800
          Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-01 08:03 -0800
        Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-01 07:42 -0800
          Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2021-01-02 21:59 +0300
            Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2021-01-02 14:52 -0500
              Re: Programming exercise/challenge Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2021-01-02 12:30 -0800
              Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-02 18:17 -0500
                Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2021-01-02 19:22 -0500
                Re: Programming exercise/challenge Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-01-02 17:48 -0800
                  Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-02 22:35 -0500
            Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-02 18:02 -0800
              Re: Programming exercise/challenge Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-01-03 00:42 -0800
                Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-04 20:12 -0800
    Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-04 07:04 -0800
      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-04 20:22 -0800
        Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-05 04:24 -0800
          Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-05 06:22 -0800
            Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-05 08:55 -0800
              Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2021-01-05 20:22 +0300
                Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2021-01-05 20:27 +0300
                Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-05 14:20 -0800
              Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-05 17:23 +0000
                Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-05 10:18 -0800
                  Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-05 18:57 +0000
                Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-05 12:58 -0800
                  Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2021-01-05 17:31 -0500
                  Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-05 17:50 -0500
                    Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-05 19:33 -0800
                      Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2021-01-05 23:02 -0500
                        Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-05 21:00 -0800
                          Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2021-01-06 07:42 -0500
                            Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-06 08:55 -0800
                              Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2021-01-06 13:29 -0500
                                Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-06 14:09 -0800
                                  Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-06 22:11 -0500
                                  Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-07 03:10 -0800
                                    Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2021-01-07 06:40 -0500
                                    Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-09 06:27 -0800
                                      Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-10 04:32 -0800
                                        Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-11 06:58 -0800
                                          Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-11 14:40 -0800
                                            Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-15 09:46 -0800
                                              Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-17 04:13 -0800
                                                Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2021-01-17 14:18 +0000
                                                  Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-17 18:02 +0000
                                                    Re: Programming exercise/challenge Richard Damon <Richard@Damon-Family.org> - 2021-01-17 15:12 -0500
                                                    Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2021-01-17 21:39 +0000
                                                Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-20 10:57 -0800
                                                  Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-21 11:37 -0800
                                                    Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-22 00:30 -0500
                                                      Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-22 09:09 -0800
                                                        Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-22 13:47 -0500
                                                        Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-22 19:00 +0000
                                                          Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2021-01-22 19:42 +0000
                                                            Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-22 21:16 +0000
                                                              Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-22 16:41 -0500
                                                                Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-23 17:46 -0800
                                                              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-23 09:51 -0800
                                                                Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-23 18:38 +0000
                                                          Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-23 04:52 -0800
                                                            Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-01-23 15:45 +0000
                                                              Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-23 09:04 -0800
                                                                Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-01-23 23:10 +0000
                                                                  Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-23 15:39 -0800
                                                            Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-23 15:59 +0000
                                                            Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-25 11:40 -0500
                                                      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-23 09:47 -0800
                                                        Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-23 18:32 +0000
                                                    Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-23 17:26 -0800
                                                      Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2021-01-24 01:55 +0000
                                                        Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-27 08:40 -0800
                                                      Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-23 20:51 -0800
                                                        Re: Programming exercise/challenge Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-01-24 02:28 -0800
                                                          Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-24 03:49 -0800
                                                            Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2021-01-24 15:38 +0300
                                                            Re: Programming exercise/challenge Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-01-24 14:04 -0800
                                                              Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-25 07:26 -0800
                                                                Re: Programming exercise/challenge David Brown <david.brown@hesbynett.no> - 2021-01-25 16:58 +0100
                                                                Re: Programming exercise/challenge luser droog <luser.droog@gmail.com> - 2021-01-25 09:14 -0800
                                                                  Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-27 07:32 -0800
                                                                    Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-01-27 16:24 +0000
                                                                      Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-28 00:11 -0800
                                                                      Re: Programming exercise/challenge Anton Shepelev <anton.txt@g{oogle}mail.com> - 2021-01-28 12:25 +0300
                                                                        Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-28 06:18 -0500
                                                                          Re: Programming exercise/challenge Anton Shepelev <anton.txt@g{oogle}mail.com> - 2021-01-28 16:54 +0300
                                                                            Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-28 09:15 -0500
                                                                              Re: Programming exercise/challenge Anton Shepelev <anton.txt@g{oogle}mail.com> - 2021-01-28 20:07 +0300
                                                                                Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-28 15:58 -0500
                                                                                  Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2021-01-29 00:07 +0300
                                                                                    Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-28 16:17 -0500
                                                                          Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2021-01-29 00:03 +0300
                                                                        Re: Programming exercise/challenge Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2021-01-28 03:37 -0800
                                                                        Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-01-28 22:50 +0000
                                                                          Re: Programming exercise/challenge Anton Shepelev <anton.txt@gmail.com> - 2021-01-30 23:14 +0300
                                                                            Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-01-30 20:49 +0000
                                                                    Re: Programming exercise/challenge M Joshua Ryan <luser.droog@gmail.com> - 2021-01-28 00:05 -0600
                                                                  Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-27 11:51 -0800
                                                                Re: Programming exercise/challenge Bart <bc@freeuk.com> - 2021-01-25 17:22 +0000
                                                                Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-25 12:21 -0800
                                                                  Re: Programming exercise/challenge Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-01-25 14:27 -0800
                                                                    Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-25 19:41 -0800
                                                                      Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-26 04:46 +0000
                                                                        Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-26 06:30 -0800
                                                                      Re: Programming exercise/challenge David Brown <david.brown@hesbynett.no> - 2021-01-26 15:46 +0100
                                                                        Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-27 03:43 -0800
                                                                          Re: Programming exercise/challenge David Brown <david.brown@hesbynett.no> - 2021-01-27 13:43 +0100
                                                                            Re: Programming exercise/challenge Anton Shepelev <anton.txt@g{oogle}mail.com> - 2021-01-27 17:51 +0300
                                                                              Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-27 11:02 -0500
                                                                              Re: Programming exercise/challenge David Brown <david.brown@hesbynett.no> - 2021-01-27 17:03 +0100
                                                                            Re: Programming exercise/challenge Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2021-01-27 07:21 -0800
                                                                              Re: Programming exercise/challenge David Brown <david.brown@hesbynett.no> - 2021-01-27 17:09 +0100
                                                                            Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-27 17:04 +0000
                                                                              Re: Programming exercise/challenge David Brown <david.brown@hesbynett.no> - 2021-01-28 10:41 +0100
                                                                                Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-28 18:25 +0000
                                                                              Re: Programming exercise/challenge David Brown <david.brown@hesbynett.no> - 2021-01-28 10:44 +0100
                                                                                Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-28 21:33 +0000
                                                                                  Re: Programming exercise/challenge David Brown <david.brown@hesbynett.no> - 2021-01-29 10:39 +0100
                                                                  Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-25 23:52 -0500
                                                                  Re: Programming exercise/challenge Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-01-26 11:37 +0000
                                                                Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-27 08:04 -0800
                                                                  Re: Programming exercise/challenge Anton Shepelev <anton.txt@g{oogle}mail.com> - 2021-01-27 19:16 +0300
                                                                    Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-27 23:38 -0800
                                                        Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-27 13:43 -0800
                                                          Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-28 03:16 -0800
                                                            Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-28 06:42 -0500
                                                            Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-28 13:01 -0800
                              Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-06 13:35 -0500
                              Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-06 19:27 +0000
                              Re: Programming exercise/challenge Kaz Kylheku <563-365-8930@kylheku.com> - 2021-01-06 21:25 +0000
                      Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-06 00:37 -0500
                        Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-06 04:34 -0800
                          Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-06 11:54 -0500
                  Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-05 15:28 -0800
              Re: Programming exercise/challenge James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-01-05 13:27 -0500
              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-05 15:43 -0800
            Re: Programming exercise/challenge Dave Dunfield <dave.dunfield@gmail.com> - 2021-01-05 20:10 -0800
              Re: Programming exercise/challenge Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-01-06 23:07 -0800

Page 8 of 20 — ← Prev page 1 … 6 7 [8] 9 10 … 20  Next page →


#157125

FromTim Rentsch <tr.17687@z991.linuxsc.com>
Date2020-12-08 23:26 -0800
Message-ID<86v9db5tjj.fsf@linuxsc.com>
In reply to#157057
Anton Shepelev <anton.txt@gmail.com> writes:

> Tim Rentsch:
>
>> Short problem statement:  a C program to remove comments
>> from C source input.
>>
>> Specifics:  Remove both /*...*/ and //... style comments.
>> Don't worry about trigraphs.  Read from stdin, write to
>> stdout, and diagnostics (if any) go to stderr.  If EOF is
>> seen inside a comment, do something sensible but it
>> doesn't matter what as long as it's sensible.  Use no
>> 'goto' statements.  Limit function bodies to no more than
>> 25 lines.

> [...]
> By the way, am I the only one to be hard-pressed to keep the
> functions within the 25-line limit, for botjh of my
> functions have exactly 25 lines.

I may have been overly optimistic in choosing 25 lines as the
limit here.  I think anyone who makes an earnest effort to
stay away from longer functions may be said to satisfy the
spirit of the stated limit.

[toc] | [prev] | [next] | [standalone]


#157063

FromRichard Damon <Richard@Damon-Family.org>
Date2020-12-07 19:02 -0500
Message-ID<eozzH.3716$9F.1246@fx47.iad>
In reply to#156943
On 12/5/20 11:25 AM, Tim Rentsch wrote:
> Prompted by some recent discussion regarding 'goto' statements and
> state machines, I would like to propose a programming exercise.
> (It is perhaps a bit too large to be called an exercise, but not so
> difficult that it deserves the label of challenge.  On the other
> hand there are some constraints so maybe challenge is apropos.  In
> any case somewhere in between those two bounds.)
> 
> Short problem statement:  a C program to remove comments from C
> source input.
> 
> Specifics:  Remove both /*...*/ and //... style comments.  Don't
> worry about trigraphs.  Read from stdin, write to stdout, and
> diagnostics (if any) go to stderr.  If EOF is seen inside a
> comment, do something sensible but it doesn't matter what as long
> as it's sensible.  Use no 'goto' statements.  Limit function
> bodies to no more than 25 lines.
> 
> Other:  feel free to handle corner cases as you see fit, as long
> as there is some description of what choice was made.
> 
> Hopefully it will be a fun exercise.  It isn't trivial but it
> shouldn't take too long either.
> 

A few thoughts on some things that I see that many entries aren't handling:

Strings (and character constants):

The following are some valid strings:
""

"\""

"\\"

"\\\""

"foo\
bar"


An arbitrary number of \<nl> combinations can occur between the two
characters that define the start/end of the comment so the following is
a valid block comment


/\
\
\
* comment *\
\
\
/

Note also, that the spec doesn't say to remove \<nl> combinations that
are not in a comment so something like this could be tricky to get right:


  a = b /\
\
\
\
\
c;


Note also (and I think most get this:

  // This is a multi-line \
single line comment


[toc] | [prev] | [next] | [standalone]


#157067

FromBen Bacarisse <ben.usenet@bsb.me.uk>
Date2020-12-08 01:15 +0000
Message-ID<87pn3lksil.fsf@bsb.me.uk>
In reply to#157063
Richard Damon <Richard@Damon-Family.org> writes:

> A few thoughts on some things that I see that many entries aren't handling:
>
> Strings (and character constants):
>
> The following are some valid strings:
> ""
>
> "\""
>
> "\\"
>
> "\\\""
>
> "foo\
> bar"

and my favourite:

"abc\\
""

-- 
Ben.

[toc] | [prev] | [next] | [standalone]


#157069

FromRichard Damon <Richard@Damon-Family.org>
Date2020-12-07 20:38 -0500
Message-ID<ZNAzH.7099$vr5.7074@fx48.iad>
In reply to#157067
On 12/7/20 8:15 PM, Ben Bacarisse wrote:
> Richard Damon <Richard@Damon-Family.org> writes:
> 
>> A few thoughts on some things that I see that many entries aren't handling:
>>
>> Strings (and character constants):
>>
>> The following are some valid strings:
>> ""
>>
>> "\""
>>
>> "\\"
>>
>> "\\\""
>>
>> "foo\
>> bar"
> 
> and my favourite:
> 
> "abc\\
> ""
> 

Yes. That is a tricky one to get, got to do the phases right.

[toc] | [prev] | [next] | [standalone]


#157072

FromBen Bacarisse <ben.usenet@bsb.me.uk>
Date2020-12-08 02:19 +0000
Message-ID<87r1o1jazn.fsf@bsb.me.uk>
In reply to#157069
Richard Damon <Richard@Damon-Family.org> writes:

> On 12/7/20 8:15 PM, Ben Bacarisse wrote:
>> Richard Damon <Richard@Damon-Family.org> writes:
>> 
>>> A few thoughts on some things that I see that many entries aren't handling:
>>>
>>> Strings (and character constants):
>>>
>>> The following are some valid strings:
>>> ""
>>>
>>> "\""
>>>
>>> "\\"
>>>
>>> "\\\""
>>>
>>> "foo\
>>> bar"
>> 
>> and my favourite:
>> 
>> "abc\\
>> ""
>
> Yes. That is a tricky one to get, got to do the phases right.

Actually the underlying logic of the phases is simple.  I think the
Haskell code showed that.

-- 
Ben.

[toc] | [prev] | [next] | [standalone]


#157080

FromBart <bc@freeuk.com>
Date2020-12-08 11:44 +0000
Message-ID<kGJzH.84918$HFx7.59867@fx43.ams4>
In reply to#157063
On 08/12/2020 00:02, Richard Damon wrote:
> On 12/5/20 11:25 AM, Tim Rentsch wrote:
>> Prompted by some recent discussion regarding 'goto' statements and
>> state machines, I would like to propose a programming exercise.
>> (It is perhaps a bit too large to be called an exercise, but not so
>> difficult that it deserves the label of challenge.  On the other
>> hand there are some constraints so maybe challenge is apropos.  In
>> any case somewhere in between those two bounds.)
>>
>> Short problem statement:  a C program to remove comments from C
>> source input.
>>
>> Specifics:  Remove both /*...*/ and //... style comments.  Don't
>> worry about trigraphs.  Read from stdin, write to stdout, and
>> diagnostics (if any) go to stderr.  If EOF is seen inside a
>> comment, do something sensible but it doesn't matter what as long
>> as it's sensible.  Use no 'goto' statements.  Limit function
>> bodies to no more than 25 lines.
>>
>> Other:  feel free to handle corner cases as you see fit, as long
>> as there is some description of what choice was made.
>>
>> Hopefully it will be a fun exercise.  It isn't trivial but it
>> shouldn't take too long either.
>>
> 
> A few thoughts on some things that I see that many entries aren't handling:
> 
> Strings (and character constants):
> 
> The following are some valid strings:
> ""
> 
> "\""
> 
> "\\"
> 
> "\\\""
> 
> "foo\
> bar"
> 
> 
> An arbitrary number of \<nl> combinations can occur between the two
> characters that define the start/end of the comment so the following is
> a valid block comment
> 
> 
> /\
> \
> \
> * comment *\
> \
> \
> /

I've said before, this is a crazy thing to allow in a language (how do 
you even specify it in a grammar?).

All you need are // and /**/ comments and be done with it, without 
allowing that whole extra dimension.

But today I thought I'd allow it in my C compiler anyway, as a special 
option. Except that I found I'd already done it!

It was available as a long-forgotten built-in flag. So I just made it a 
regular compiler option (-splicing). It involves copying and translating 
one string to another, which 99.9999% of the time will be a complete 
waste of time.

The 0.0001% is for threads like these.

[toc] | [prev] | [next] | [standalone]


#157082

FromRichard Damon <Richard@Damon-Family.org>
Date2020-12-08 07:32 -0500
Message-ID<ZnKzH.19108$7K1.9169@fx46.iad>
In reply to#157080
On 12/8/20 6:44 AM, Bart wrote:
> On 08/12/2020 00:02, Richard Damon wrote:
>> On 12/5/20 11:25 AM, Tim Rentsch wrote:
>>> Prompted by some recent discussion regarding 'goto' statements and
>>> state machines, I would like to propose a programming exercise.
>>> (It is perhaps a bit too large to be called an exercise, but not so
>>> difficult that it deserves the label of challenge.  On the other
>>> hand there are some constraints so maybe challenge is apropos.  In
>>> any case somewhere in between those two bounds.)
>>>
>>> Short problem statement:  a C program to remove comments from C
>>> source input.
>>>
>>> Specifics:  Remove both /*...*/ and //... style comments.  Don't
>>> worry about trigraphs.  Read from stdin, write to stdout, and
>>> diagnostics (if any) go to stderr.  If EOF is seen inside a
>>> comment, do something sensible but it doesn't matter what as long
>>> as it's sensible.  Use no 'goto' statements.  Limit function
>>> bodies to no more than 25 lines.
>>>
>>> Other:  feel free to handle corner cases as you see fit, as long
>>> as there is some description of what choice was made.
>>>
>>> Hopefully it will be a fun exercise.  It isn't trivial but it
>>> shouldn't take too long either.
>>>
>>
>> A few thoughts on some things that I see that many entries aren't
>> handling:
>>
>> Strings (and character constants):
>>
>> The following are some valid strings:
>> ""
>>
>> "\""
>>
>> "\\"
>>
>> "\\\""
>>
>> "foo\
>> bar"
>>
>>
>> An arbitrary number of \<nl> combinations can occur between the two
>> characters that define the start/end of the comment so the following is
>> a valid block comment
>>
>>
>> /\
>> \
>> \
>> * comment *\
>> \
>> \
>> /
> 
> I've said before, this is a crazy thing to allow in a language (how do
> you even specify it in a grammar?).

C does it by specifying a sequence of stages that ar done. In C comments
aren't part of the main language 'grammer', but get processed out before
we get to the normal grammer phase.

Note, that C also really has two fairly distince grammers, one for the
preprocessor and seperate one for the main language constructs.
> 
> All you need are // and /**/ comments and be done with it, without
> allowing that whole extra dimension.

It actually comes out very simply by the way the langague is defined,
and it provides a very usefull capability for machine generated code
with line length constraints.

> 
> But today I thought I'd allow it in my C compiler anyway, as a special
> option. Except that I found I'd already done it!
> 
> It was available as a long-forgotten built-in flag. So I just made it a
> regular compiler option (-splicing). It involves copying and translating
> one string to another, which 99.9999% of the time will be a complete
> waste of time.
> 
> The 0.0001% is for threads like these.
> 

[toc] | [prev] | [next] | [standalone]


#157086

FromBart <bc@freeuk.com>
Date2020-12-08 14:40 +0000
Message-ID<AfMzH.109012$SiR9.48285@fx11.ams4>
In reply to#157082
On 08/12/2020 12:32, Richard Damon wrote:
> On 12/8/20 6:44 AM, Bart wrote:

>> I've said before, this is a crazy thing to allow in a language (how do
>> you even specify it in a grammar?).
> 
> C does it by specifying a sequence of stages that ar done. In C comments
> aren't part of the main language 'grammer', but get processed out before
> we get to the normal grammer phase.
> 
> Note, that C also really has two fairly distince grammers, one for the
> preprocessor and seperate one for the main language constructs.
>>
>> All you need are // and /**/ comments and be done with it, without
>> allowing that whole extra dimension.
> 
> It actually comes out very simply by the way the langague is defined,
> and it provides a very usefull capability for machine generated code
> with line length constraints.

Yet, I've only heard of it in connection with C. No other language that 
I know of does this. How did /they/ (and do they) manage without such a 
feature?!

[toc] | [prev] | [next] | [standalone]


#157087

From"james...@alumni.caltech.edu" <jameskuyper@alumni.caltech.edu>
Date2020-12-08 06:52 -0800
Message-ID<7d5525af-18e7-4124-9915-da7aa4989e76n@googlegroups.com>
In reply to#157086
On Tuesday, December 8, 2020 at 9:40:54 AM UTC-5, Bart wrote:
> On 08/12/2020 12:32, Richard Damon wrote: 
...
> > It actually comes out very simply by the way the langague is defined, 
> > and it provides a very usefull capability for machine generated code 
> > with line length constraints.
> Yet, I've only heard of it in connection with C. No other language that 
> I know of does this. How did /they/ (and do they) manage without such a 
> feature?!

I've heard of several languages that provide one mechanism or another for
splicing multiple lines together into one logical line, all of them klunky. In
older versions of Fortran, for instance, a '1' in a particular position near the
start of a line marked it as a continuation of the previous line. Such a
feature is needed only for languages for which new-line is an explicit part
of the syntax for some language constructs that might need to be much
longer than can fit on a single physical line. In C, that applies to most pre-
processor directives.

[toc] | [prev] | [next] | [standalone]


#157092

FromBart <bc@freeuk.com>
Date2020-12-08 17:31 +0000
Message-ID<9MOzH.256045$ijZ9.217531@fx05.ams4>
In reply to#157087
On 08/12/2020 14:52, james...@alumni.caltech.edu wrote:
> On Tuesday, December 8, 2020 at 9:40:54 AM UTC-5, Bart wrote:
>> On 08/12/2020 12:32, Richard Damon wrote:
> ...
>>> It actually comes out very simply by the way the langague is defined,
>>> and it provides a very usefull capability for machine generated code
>>> with line length constraints.
>> Yet, I've only heard of it in connection with C. No other language that
>> I know of does this. How did /they/ (and do they) manage without such a
>> feature?!
> 
> I've heard of several languages that provide one mechanism or another for
> splicing multiple lines together into one logical line, all of them klunky.

Yes, that is common.

What isn't so common is allowing that to happen between any two 
characters, even in the middle of a token, rather than between two tokens.


  In
> older versions of Fortran, for instance, a '1' in a particular position near the
> start of a line marked it as a continuation of the previous line.

Fortan was rather peculiar (probably still is) in ignoring spaces where 
they are needed to separate tokens as in conventional syntax.

Having a continuation logic be applied before tokenisation wouldn't 
raise eyebrows as much; it would be different anyway as it's marked at 
the start of the next line (eg. next punched card) rather than at the 
end of the line being continued.

[toc] | [prev] | [next] | [standalone]


#157097

FromKaz Kylheku <563-365-8930@kylheku.com>
Date2020-12-08 20:16 +0000
Message-ID<20201208103416.809@kylheku.com>
In reply to#157092
On 2020-12-08, Bart <bc@freeuk.com> wrote:
> On 08/12/2020 14:52, james...@alumni.caltech.edu wrote:
>> On Tuesday, December 8, 2020 at 9:40:54 AM UTC-5, Bart wrote:
>>> On 08/12/2020 12:32, Richard Damon wrote:
>> ...
>>>> It actually comes out very simply by the way the langague is defined,
>>>> and it provides a very usefull capability for machine generated code
>>>> with line length constraints.
>>> Yet, I've only heard of it in connection with C. No other language that
>>> I know of does this. How did /they/ (and do they) manage without such a
>>> feature?!
>> 
>> I've heard of several languages that provide one mechanism or another for
>> splicing multiple lines together into one logical line, all of them klunky.
>
> Yes, that is common.
>
> What isn't so common is allowing that to happen between any two 
> characters, even in the middle of a token, rather than between two tokens.

In TXR Lisp, I only allow continuation in he middle of a token!
Specifically, a string-literal token. There is no general line
continuation feature.

  This is the TXR Lisp interactive listener of TXR 244.
  Quit with :quit or Ctrl-D on an empty line. Ctrl-X ? for cheatsheet.
  TXR is made with equipment not contaminated by peanuts ... r-r-right?
  1> "foo bar \
      baz"
  "foo barbaz"

Note how all he whitespace surrounding the \ is deleted!

  2> "foo bar \
      baz"
  "foo barbaz"

This allows continued literals to obey the indentation.

A space can be escaped to prevent its deletion, using one of these
patterns:

  2> "foo bar \
     \ baz"
  "foo bar baz"
  3> "foo bar\ \
      baz"
  "foo bar baz"

I could have imposed the requirement that literals can simply continue
across lines without a backslash.

But that doesn't sit well with me.

The first reason is this:

Most literals are closed in the same line, and so in most cases
when the closing delimiter is not seen in the same line, it is an
unintentional error situation. We would like to diagnose it promptly.

Furthermore, there is a risk that we will not diagnose it at all:

  (blah sym "forgotten close
        sym 123 stray quote follows" blah)

Naively allowing multi-line literals is a poorly considered misfeature.
(Which is why it finds an excellent home in the POSIX shell language).

The second reason is that I would like to be able to continue a literal
without the newline becoming part of the data.  If you allow this:

  "abcdef
   ghi"

such that it simply deletes all he whitespace and produces "abcdefghi",
that will surprise users coming from other languages.

Combining adjacent literals like in C is a complete nonstarter in a
Lisp. ("abc" "def") must be a different object from ("abcdef").

[toc] | [prev] | [next] | [standalone]


#157099

FromBart <bc@freeuk.com>
Date2020-12-08 20:48 +0000
Message-ID<uERzH.98227$J736.62644@fx42.ams4>
In reply to#157097
On 08/12/2020 20:16, Kaz Kylheku wrote:
> On 2020-12-08, Bart <bc@freeuk.com> wrote:

>> What isn't so common is allowing that to happen between any two
>> characters, even in the middle of a token, rather than between two tokens.
> 
> In TXR Lisp, I only allow continuation in he middle of a token!
> Specifically, a string-literal token. There is no general line
> continuation feature.
> 
>    This is the TXR Lisp interactive listener of TXR 244.
>    Quit with :quit or Ctrl-D on an empty line. Ctrl-X ? for cheatsheet.
>    TXR is made with equipment not contaminated by peanuts ... r-r-right?
>    1> "foo bar \
>        baz"
>    "foo barbaz"

Python does something similar, allows \ in the middle of a string, but 
the white space at the start of the next line is part of the string, so 
can't be used for indentation.

(Otherwise, \ is only allowed between tokens.)


> Note how all he whitespace surrounding the \ is deleted!
> 
>    2> "foo bar \
>        baz"
>    "foo barbaz"
> 
> This allows continued literals to obey the indentation.

> A space can be escaped to prevent its deletion, using one of these
> patterns:
> 
>    2> "foo bar \
>       \ baz"
>    "foo bar baz"
>    3> "foo bar\ \
>        baz"
>    "foo bar baz"

What about requiring the continuation of the string to start with "? 
Although that would be tidier if both parts had ":

    "foo bar" \
        "baz"

Then \ has the effect also of splicing those two tokens.


> I could have imposed the requirement that literals can simply continue
> across lines without a backslash.
> 
> But that doesn't sit well with me.
> 
> The first reason is this:
> 
> Most literals are closed in the same line, and so in most cases
> when the closing delimiter is not seen in the same line, it is an
> unintentional error situation. We would like to diagnose it promptly.
> 
> Furthermore, there is a risk that we will not diagnose it at all:
> 
>    (blah sym "forgotten close
>          sym 123 stray quote follows" blah)
> 
> Naively allowing multi-line literals is a poorly considered misfeature.
> (Which is why it finds an excellent home in the POSIX shell language).
> 
> The second reason is that I would like to be able to continue a literal
> without the newline becoming part of the data.  If you allow this:
> 
>    "abcdef
>     ghi"
> 
> such that it simply deletes all he whitespace and produces "abcdefghi",
> that will surprise users coming from other languages.

Allowing real newlines belonging to the source file into the string is 
not good.

My current scheme if literals have to be combined is one of:

     "abc" "def"       # forms one token

     "abc" \           # without \, it's "abc" ; "def"
     "def"

     "abc" + "def"

     "abc" +           # binary op means line continues
     "def"

The "+" seems obvious but I never got round to it until just now. It's a 
more grown-up way of doing it, and allows either operand to be a named 
constant, or any expression that reduces to a constant string.


> Combining adjacent literals like in C is a complete nonstarter in a
> Lisp. ("abc" "def") must be a different object from ("abcdef").

You're not tempted with an infix operator like my + and \ examples?

(+ "abc" "def") will work too.

[toc] | [prev] | [next] | [standalone]


#157105

FromMalcolm McLean <malcolm.arthur.mclean@gmail.com>
Date2020-12-08 15:34 -0800
Message-ID<40d91b0a-8a88-4ea9-99df-e3365ccadf0bn@googlegroups.com>
In reply to#157099
On Tuesday, 8 December 2020 at 20:48:44 UTC, Bart wrote:
> On 08/12/2020 20:16, Kaz Kylheku wrote: 
> > On 2020-12-08, Bart <b...@freeuk.com> wrote: 
> 
> >> What isn't so common is allowing that to happen between any two 
> >> characters, even in the middle of a token, rather than between two tokens. 
> > 
> > In TXR Lisp, I only allow continuation in he middle of a token! 
> > Specifically, a string-literal token. There is no general line 
> > continuation feature. 
> > 
> > This is the TXR Lisp interactive listener of TXR 244. 
> > Quit with :quit or Ctrl-D on an empty line. Ctrl-X ? for cheatsheet. 
> > TXR is made with equipment not contaminated by peanuts ... r-r-right? 
> > 1> "foo bar \ 
> > baz" 
> > "foo barbaz"
> Python does something similar, allows \ in the middle of a string, but 
> the white space at the start of the next line is part of the string, so 
> can't be used for indentation. 
> 
> (Otherwise, \ is only allowed between tokens.)
> > Note how all he whitespace surrounding the \ is deleted! 
> > 
> > 2> "foo bar \ 
> > baz" 
> > "foo barbaz" 
> > 
> > This allows continued literals to obey the indentation. 
> 
> > A space can be escaped to prevent its deletion, using one of these 
> > patterns: 
> > 
> > 2> "foo bar \ 
> > \ baz" 
> > "foo bar baz" 
> > 3> "foo bar\ \ 
> > baz" 
> > "foo bar baz"
> What about requiring the continuation of the string to start with "? 
> Although that would be tidier if both parts had ": 
> 
> "foo bar" \ 
> "baz" 
> 
> Then \ has the effect also of splicing those two tokens.
> > I could have imposed the requirement that literals can simply continue 
> > across lines without a backslash. 
> > 
> > But that doesn't sit well with me. 
> > 
> > The first reason is this: 
> > 
> > Most literals are closed in the same line, and so in most cases 
> > when the closing delimiter is not seen in the same line, it is an 
> > unintentional error situation. We would like to diagnose it promptly. 
> > 
> > Furthermore, there is a risk that we will not diagnose it at all: 
> > 
> > (blah sym "forgotten close 
> > sym 123 stray quote follows" blah) 
> > 
> > Naively allowing multi-line literals is a poorly considered misfeature. 
> > (Which is why it finds an excellent home in the POSIX shell language). 
> > 
> > The second reason is that I would like to be able to continue a literal 
> > without the newline becoming part of the data. If you allow this: 
> > 
> > "abcdef 
> > ghi" 
> > 
> > such that it simply deletes all he whitespace and produces "abcdefghi", 
> > that will surprise users coming from other languages.
> Allowing real newlines belonging to the source file into the string is 
> not good. 
> 
> My current scheme if literals have to be combined is one of: 
> 
> "abc" "def" # forms one token 
> 
> "abc" \ # without \, it's "abc" ; "def" 
> "def" 
> 
> "abc" + "def" 
> 
> "abc" + # binary op means line continues 
> "def" 
> 
> The "+" seems obvious but I never got round to it until just now. It's a 
> more grown-up way of doing it, and allows either operand to be a named 
> constant, or any expression that reduces to a constant string.
> > Combining adjacent literals like in C is a complete nonstarter in a 
> > Lisp. ("abc" "def") must be a different object from ("abcdef").
> You're not tempted with an infix operator like my + and \ examples? 
> 
> (+ "abc" "def") will work too.
>
Here's my offering.

#include <stdio.h>
#include <stdlib.h>

void skipblockcomment(FILE *fpin, FILE *fpout)
{
   int prevch = -1;
   int ch;
   
   fputc(' ', fpout);

   while( (ch = fgetc(fpin)) != EOF)
   {
      if (ch == '/'  && prevch == '*')
        return;
      if (ch == '\\')
         if (fgetc(fpin) == '\n')
            continue;

      prevch = ch;
   }
   
   fprintf(stderr, "EOF in block comment\n");
   exit(EXIT_FAILURE);
}

void skiplinecomment(FILE *fpin, FILE *fpout)
{
   int prevch = -1;
   int ch;
   
   fputc('\n', fpout);

   while ((ch = fgetc(fpin)) != EOF)
   {
      if (ch == '\n' && prevch != '\\')
         return;
      prevch = ch;
   }
}

void outputstring(FILE *fpin, FILE *fpout)
{
    int prevch = -1;
    int ch;

    fputc('\"', fpout);

    while ((ch = fgetc(fpin)) != EOF)
    {
       fputc(ch, fpout);
       if (ch == '\"' && prevch != '\\')
         return;
       if (ch == '\\' && prevch == '\\')
         prevch = -1;
       else
         prevch = ch;
    }
    fprintf(stderr, "Unterminated string literal\n");
    exit(EXIT_FAILURE);
}

void flushbuffer(int *buff, int N, FILE *fp)
{
   int i;
   for (i= 0; i < N; i++)
   {
     if (buff[i] != -1)
        fputc(buff[i], fp);
     buff[i] = -1;
   }
}

void shiftbuffer(int *buff, int N, int ch, FILE *fp)
{
   int i;

   if (buff[0] != -1)
     fputc(buff[0], fp);
   for (i =0; i < N-1; i++)
     buff[i] = buff[i+1];
   buff[N-1] = ch;
}

void clearbuffer(int *buff, int N)
{
   int i;
   
   for (i =0; i < N; i++)
     buff[i] = -1;
}

void stripcomments(FILE *fpin, FILE *fpout)
{
   int ch;
   int buff[3] = {-1, -1, -1};

   while ((ch = fgetc(fpin)) != EOF)
   {
      if (ch == '*' && buff[2]  == '/')
        skipblockcomment(fpin, fpout);
      else if (ch == '/' && buff[2] == '/')
        skiplinecomment(fpin, fpout);
      else if (ch == '"' && buff[2] != '\\')
      {
         flushbuffer(buff, 3, fpout);
         outputstring(fpin, fpout);
      }
      else if(ch == '*' && buff[2] == '\n' && buff[1] == '\\' && buff[0] == '/')
      {
         skipblockcomment(fpin, fpout);
      }
      else if(ch == '/' && buff[2] == '\n' && buff[1] == '\\' && buff[0] == '/')
      {
         skiplinecomment(fpin, fpout);
      }
      else
      {
         shiftbuffer(buff, 3, ch, fpout);
         continue;
      }
      clearbuffer(buff, 3);
   }

   flushbuffer(buff, 3, fpout);
}


void usage(void)
{
   printf("strips comments form a C file\n");
   printf("Usage: stripcomments <source.c>\n");
   exit(EXIT_FAILURE);
}

int main(int argc, char **argv)
{
   FILE *fp;

   if (argc != 2)
     usage();
   fp = fopen(argv[1], "r");
   if (!fp)
   {
      fprintf(stderr, "Error opening file %s\n", argv[1]);
      exit(EXIT_FAILURE);
   }

   stripcomments(fp, stdout);
   fclose(fp);

   return 0;
}

You see that the code is dominated by the line continuation / split
tokens problem. That's the reason for the use of a three character buffer,
the buffer routines,a nd the complexity in the high-level function. 

[toc] | [prev] | [next] | [standalone]


#157107

FromAnton Shepelev <anton.txt@gmail.com>
Date2020-12-09 02:54 +0300
Message-ID<20201209025426.65072e5c80c7ece6c856c982@gmail.com>
In reply to#157105
Malcolm,

you program is not even trying :-)
Test it with:

   a/*b*/c

-- 
()  ascii ribbon campaign -- against html e-mail
/\  http://preview.tinyurl.com/qcy6mjc [archived]

[toc] | [prev] | [next] | [standalone]


#157132

FromAnton Shepelev <anton.txt@gmail.com>
Date2020-12-09 12:33 +0300
Message-ID<20201209123317.78730e7752b13ebff4ae03b1@gmail.com>
In reply to#157107
I wrote:

> Malcolm,
>
> you[r] program is not even trying :-)
> Test it with:
>
>   a/*b*/c

I still do not understand. When I save the text quoted above
into a file named 1.c and invoke your program with it:

   mclean.exe 1.c

The result is:

   c

-- that is a space followed by ` '. Is it correct behavior?
I expected:

   a c

-- that is three characters: `a', space, and `c'.

-- 
()  ascii ribbon campaign -- against html e-mail
/\  http://preview.tinyurl.com/qcy6mjc [archived]

[toc] | [prev] | [next] | [standalone]


#157134

FromAnton Shepelev <anton.txt@gmail.com>
Date2020-12-09 12:43 +0300
Message-ID<20201209124316.ffcaa7af2a3d9e6b4151a4c7@gmail.com>
In reply to#157132
I wrote to Malcolm McLean:

> >   a/*b*/c
>
> I still do not understand. When I save the text quoted above
> into a file named 1.c and invoke your program with it:
>
>    mclean.exe 1.c
>
> The result is:
>
>    c
>
> -- that is a space followed by ` '.

No, that is a space followed by `c'. Still not what I
expected.

-- 
()  ascii ribbon campaign -- against html e-mail
/\  http://preview.tinyurl.com/qcy6mjc [archived]

[toc] | [prev] | [next] | [standalone]


#157137

FromMalcolm McLean <malcolm.arthur.mclean@gmail.com>
Date2020-12-09 01:52 -0800
Message-ID<6174e253-7c72-4101-aef5-1a92504617bfn@googlegroups.com>
In reply to#157134
On Wednesday, 9 December 2020 at 09:43:33 UTC, Anton Shepelev wrote:
> I wrote to Malcolm McLean:
> > > a/*b*/c 
> > 
> > I still do not understand. When I save the text quoted above 
> > into a file named 1.c and invoke your program with it: 
> > 
> > mclean.exe 1.c 
> > 
> > The result is: 
> > 
> > c 
> > 
> > -- that is a space followed by ` '.
> No, that is a space followed by `c'. Still not what I 
> expected.
> 
#include <stdio.h>
#include <stdlib.h>

void skipblockcomment(FILE *fpin, FILE *fpout)
{
   int prevch = -1;
   int ch;
   
   fputc(' ', fpout);

   while( (ch = fgetc(fpin)) != EOF)
   {
      if (ch == '/'  && prevch == '*')
        return;
      if (ch == '\\')
         if (fgetc(fpin) == '\n')
            continue;

      prevch = ch;
   }
   
   fprintf(stderr, "EOF in block comment\n");
   exit(EXIT_FAILURE);
}

void skiplinecomment(FILE *fpin, FILE *fpout)
{
   int prevch = -1;
   int ch;
   
   fputc('\n', fpout);

   while ((ch = fgetc(fpin)) != EOF)
   {
      if (ch == '\n' && prevch != '\\')
         return;
      prevch = ch;
   }
}

void outputstring(FILE *fpin, FILE *fpout)
{
    int prevch = -1;
    int ch;

    fputc('\"', fpout);

    while ((ch = fgetc(fpin)) != EOF)
    {
       fputc(ch, fpout);
       if (ch == '\"' && prevch != '\\')
         return;
       if (ch == '\\' && prevch == '\\')
         prevch = -1;
       else
         prevch = ch;
    }
    fprintf(stderr, "Unterminated string literal\n");
    exit(EXIT_FAILURE);
}

void flushbuffer(int *buff, int N, FILE *fp)
{
   int i;
   for (i= 0; i < N; i++)
   {
     if (buff[i] != -1)
        fputc(buff[i], fp);
     buff[i] = -1;
   }
}

void shiftbuffer(int *buff, int N, int ch, FILE *fp)
{
   int i;

   if (buff[0] != -1)
     fputc(buff[0], fp);
   for (i =0; i < N-1; i++)
     buff[i] = buff[i+1];
   buff[N-1] = ch;
}

void clearbuffer(int *buff, int N)
{
   int i;
   
   for (i =0; i < N; i++)
     buff[i] = -1;
}

void stripcomments(FILE *fpin, FILE *fpout)
{
   int ch;
   int buff[3] = {-1, -1, -1};

   while ((ch = fgetc(fpin)) != EOF)
   {
      if (ch == '*' && buff[2]  == '/')
      {
        buff[2] = -1;
        flushbuffer(buff, 3, fpout);
        skipblockcomment(fpin, fpout);
      }
      else if (ch == '/' && buff[2] == '/')
      {
        buff[2] = -1;
        flushbuffer(buff, 3, fpout);
        skiplinecomment(fpin, fpout);
      }
      else if (ch == '"' && buff[2] != '\\')
      {
         flushbuffer(buff, 3, fpout);
         outputstring(fpin, fpout);
      }
      else if(ch == '*' && buff[2] == '\n' && buff[1] == '\\' && buff[0] == '/')
      {
         skipblockcomment(fpin, fpout);
      }
      else if(ch == '/' && buff[2] == '\n' && buff[1] == '\\' && buff[0] == '/')
      {
         skiplinecomment(fpin, fpout);
      }
      else
      {
         shiftbuffer(buff, 3, ch, fpout);
         continue;
      }
      clearbuffer(buff, 3);
   }

   flushbuffer(buff, 3, fpout);
}


void usage(void)
{
   printf("strips comments form a C file\n");
   printf("Usage: stripcomments <source.c>\n");
   exit(EXIT_FAILURE);
}

int main(int argc, char **argv)
{
   FILE *fp;

   if (argc != 2)
     usage();
   fp = fopen(argv[1], "r");
   if (!fp)
   {
      fprintf(stderr, "Error opening file %s\n", argv[1]);
      exit(EXIT_FAILURE);
   }

   stripcomments(fp, stdout);
   fclose(fp);

   return 0;
}



Here's the bug fix. It take the high level function over the 25 line limit, but that
has just been relaxed.

[toc] | [prev] | [next] | [standalone]


#157233

FromAnton Shepelev <anton.txt@gmail.com>
Date2020-12-13 00:28 +0300
Message-ID<20201213002811.4a7e332b559e342629efb75c@gmail.com>
In reply to#157137
Malcolm McLean

> Here's the bug fix. It take the high level function over
> the 25 line limit, but that has just been relaxed.

It strongly disagrees with my program about the following
input (between --- separators):

---
\
\
/\
\
\
/\
a
---

My program yields:

---
\
\

---

and yours repeats the whole input verbatim.  Which one is
right?

-- 
()  ascii ribbon campaign -- against html e-mail
/\  http://preview.tinyurl.com/qcy6mjc [archived]

[toc] | [prev] | [next] | [standalone]


#157236

FromBen Bacarisse <ben.usenet@bsb.me.uk>
Date2020-12-12 21:40 +0000
Message-ID<87360aaejt.fsf@bsb.me.uk>
In reply to#157233
Anton Shepelev <anton.txt@gmail.com> writes:

> Malcolm McLean
>
>> Here's the bug fix. It take the high level function over
>> the 25 line limit, but that has just been relaxed.
>
> It strongly disagrees with my program about the following
> input (between --- separators):
>
> ---
> \
> \
> /\
> \
> \
> /\
> a
> ---
>
> My program yields:
>
> ---
> \
> \
>
> ---
>
> and yours repeats the whole input verbatim.  Which one is
> right?

Yours, surely.  The input is two continuations which, outside of a
comment should be retained, followed by //a written over five lines,
none of which should be retained.

-- 
Ben.

[toc] | [prev] | [next] | [standalone]


#157239

FromMalcolm McLean <malcolm.arthur.mclean@gmail.com>
Date2020-12-12 13:48 -0800
Message-ID<34f7cbd7-fb6c-493c-8dce-9eb7d7d57a66n@googlegroups.com>
In reply to#157236
On Saturday, 12 December 2020 at 21:40:52 UTC, Ben Bacarisse wrote:
> Anton Shepelev <anto...@gmail.com> writes: 
> 
> > Malcolm McLean 
> > 
> >> Here's the bug fix. It take the high level function over 
> >> the 25 line limit, but that has just been relaxed. 
> > 
> > It strongly disagrees with my program about the following 
> > input (between --- separators): 
> > 
> > --- 
> > \ 
> > \ 
> > /\ 
> > \ 
> > \ 
> > /\ 
> > a 
> > --- 
> > 
> > My program yields: 
> > 
> > --- 
> > \ 
> > \ 
> > 
> > --- 
> > 
> > and yours repeats the whole input verbatim. Which one is 
> > right?
> Yours, surely. The input is two continuations which, outside of a 
> comment should be retained, followed by //a written over five lines, 
> none of which should be retained. 
> 
Yes, mine doesn't handle blank newline continuations in the middle of a
token. It only handles toakens split by a single line contuniation marker.
To adapt it  would entail rewriting the whole main function from scratch, 
so I haven't submitted it.

[toc] | [prev] | [next] | [standalone]


Page 8 of 20 — ← Prev page 1 … 6 7 [8] 9 10 … 20  Next page →

Back to top | Article view | comp.lang.c


csiph-web