C11 improvements and factor
authorErkin Alp Güney <erkinalp9035@gmail.com>
Sun, 8 Mar 2015 15:38:25 +0000 (17:38 +0200)
committerErkin Alp Güney <erkinalp9035@gmail.com>
Sun, 8 Mar 2015 16:30:52 +0000 (18:30 +0200)
C11: gets_s() added
prime factorisation utility added

Applications/util/factor.c

index 570270e..a2583b2 100644 (file)
@@ -1,9 +1,22 @@
 /* factor.c - Factor integers
- *
- * Copyright 2014 Rob Landley <rob@landley.net>
- *
- * No standard, but it's in coreutils
 
+Copyright (C) 2006, 2013 by Rob Landley <rob@landley.net>
+Copyright (C) 2015 by Erkin Alp Güney <erkinalp9035@gmail.com>
+Original by Rob-FUZIX porting by Erkin Alp
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+(Note: some build infrastructure in the kconfig directory is still GPLv2,
+cleaning that out is a TODO item, but it doesn't affect the resulting
+binary.)
 USE_FACTOR(NEWTOY(factor, 0, TOYFLAG_USR|TOYFLAG_BIN))
 
 config FACTOR
@@ -71,17 +84,17 @@ static void factor(char *s)
   }
 }
 
-void factor_main(void)
+void main(int argc,char *argv[])
 {
-  if (toys.optc) {
+  if (argc > 1) {
     char **ss;
 
-    for (ss = toys.optargs; *ss; ss++) factor(*ss);
+    for (ss = argv[0]; *ss; ss++) factor(*ss);
   } else for (;;) {
     char *s = 0;
     size_t len = 0;
 
-    if (-1 == getline(&s, &len, stdin)) break;
+    if (-1 == gets_s(&s, LINE_MAX)) break;
     factor(s);
   }
 }