Code Monkey home page Code Monkey logo

todoc's Introduction

Todoc is a command line todo list.

Build Status

Basic use:

  • Add a task with todoc add "Herp a derp" or todoc -a "Herp a derp"
  • Remove a task with todoc rm 1 or todoc -r 1
  • Complete a task with todoc do 1 or todoc -d 1
  • Uncomplete a task with todoc undo 1 or todoc -u 1
  • Search for a task with todoc search "Search string" or todoc -s "Search string".
  • List all your tasks with todoc ls or todoc -l

Todoc also has flags for specifying what file to use (-f FILENAME) and the verbosity (-v).

Building:

Building todoc requires Scons, a Python based build system. Once you have Scons, just run scons to build the program.

todoc's People

Contributors

laserswald avatar

Stargazers

Noah Harvey avatar  avatar

Watchers

 avatar James Cloos avatar

Forkers

thenerd247

todoc's Issues

updated task struct

So, I realized that I updated the task structure but forgot to update the necessary functions (such as task_new) and so forth to work with these changes.

Ask if you really want to remove when given the remove command

  1. I think it would be beneficial if the user could see the text of the task that was removed from the tasklist, also an undo option might be a cool thing to add down the road.
  2. I also think it would be a great thing to add the ability to remove a task based on the given text. For instance remove task with text "Sunday run to work" in it.

-Just some ideas.

memory leaks found

Valgrind is showing memory leaks in task_dump and other functions. The testing code is crashing due to a malloc memory corruption in task_dump (after a 4th call to the function).

Query option broken

The query option is detected but a valid keyword is given (one that is found in the todo.txt) and still "No matches." is given.

I'll see what I can do to track down the issue

Configuration

I think it would be to your advantage to adding a configuration file. I can work on the parser for it. Send a list of configurations needed. Some that come to mind are: TODO_LIST_PATH

Move a task over to another file.

It's simple; the keyword "move" and then an index would move the task over to the given file.

Example invocation
todoc move 1 other.txt

Program structure

So i went to incorporate the efficient list into your program last night, and I found a messy structure. I think now that some ideas are becoming more clear about what we want to do, we should devote a branch to sudo code for structure. I'm in the process of documenting your code, and cleaning some things up. will push soon.

Notes/Warnings while compiling

I get these errors while compiling:

tests/task_test.c: In function ‘parse_test’:
tests/task_test.c:48:5: warning: passing argument 1 of ‘seatest_assert_string_equal’ discards ‘const’ qualifier from pointer target type [enabled by default]
In file included from tests/task_test.c:1:0:
tests/seatest.h:26:6: note: expected ‘char *’ but argument is of type ‘const char *’
tests/tasklist_test.c: In function ‘tlist_get_test’:
tests/tasklist_test.c:50:5: warning: passing argument 1 of ‘seatest_assert_string_equal’ discards ‘const’ qualifier from pointer target type [enabled by default]
In file included from tests/tasklist_test.c:3:0:
tests/seatest.h:26:6: note: expected ‘char *’ but argument is of type ‘const char *’
tests/tasklist_test.c: In function ‘tlist_remove_test’:
tests/tasklist_test.c:71:5: warning: passing argument 1 of ‘seatest_assert_string_equal’ discards ‘const’ qualifier from pointer target type [enabled by default]
In file included from tests/tasklist_test.c:3:0:
tests/seatest.h:26:6: note: expected ‘char *’ but argument is of type ‘const char *’
tests/tasklist_test.c:72:5: warning: passing argument 1 of ‘task_dump’ from incompatible pointer type [enabled by default]
In file included from tests/tasklist_test.c:1:0:
./include/task.h:31:13: note: expected ‘struct task_t *’ but argument is of type ‘struct tasklist_t *’
tests/tasklist_test.c:72:5: warning: passing argument 2 of ‘seatest_assert_string_equal’ discards ‘const’ qualifier from pointer target type [enabled by default]
In file included from tests/tasklist_test.c:3:0:
tests/seatest.h:26:6: note: expected ‘char *’ but argument is of type ‘const char *’


Output of gcc -v

Using built-in specs.
COLLECT_GCC=/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.7.2/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --disable-build-with-cxx --disable-build-poststage1-with-cxx --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.7.2 20120921 (Red Hat 4.7.2-2) (GCC)

Object-oriented rewrite in progress.

Right now I am working on moving the task-specific and list specific to their own separate "objects". This will allow:

  • Easier bug squashing because of better location of functions.
  • Faster feature implementation since each object will have lots of very simple functions, with more advanced functions building on top of them.

For instance, every search will return a completely new TaskList struct, which can be written to a new file, sorted, merged with another TaskList, etc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.