PRODUCT=19/0/1/0
NAME="Power Button"
PHYS="LNXPWRBN/button/input0"
PROP=0
EV=3
KEY=10000000000000 0
MODALIAS=input:b0019v0000p0001e0000-e0,1,k74,ramlsfw
  "   lm_JJh Ȯ2o?     #! /usr/bin/env python

"""Turn a pile of RCS log output into ChangeLog file entries.

"""

import sys
import string
import re
import getopt
import time

def main():
    args = sys.argv[1:]
    opts, args = getopt.getopt(args, 'p:')
    prefix = ''
    for o, a in opts:
        if p == '-p': prefix = a

    f = sys.stdin
    allrevs = []
    while 1:
        file = getnextfile(f)
        if not file: break
        revs = []
        while 1:
            rev = getnextrev(f, file)
            if not rev:
                break
            revs.append(rev)
        if revs:
            allrevs[len(allrevs):] = revs
    allrevs.sort()
    allrevs.reverse()
    for rev in allrevs:
        formatrev(rev, prefix)

parsedateprog = re.compile(
    '^date: ([0-9]+)/([0-9]+)/([0-9]+) ' +
    '([0-9]+):([0-9]+):([0-9]+);  author: ([^ ;]+)')

authormap = {
    'guido': 'Guido van Rossum  <guido@cnri.reston.va.us>',
    'jack': 'Jack Jansen  <jack@cwi.nl>',
    'sjoerd': 'Sjoerd Mullender  <sjoerd@cwi.nl>',
    }

def formatrev(rev, prefix):
    dateline, file, revline, log = rev
    if parsedateprog.match(dateline) >= 0:
        fields = parsedateprog.group(1, 2, 3, 4, 5, 6)
        author = parsedateprog.group(7)
        if authormap.has_key(author): author = authormap[author]
        tfields = map(string.atoi, fields) + [0, 0, 0]
        tfields[5] = tfields[5] - time.timezone
        t = time.mktime(tuple(tfields))
        print time.ctime(t), '', author
        words = string.split(log)
        words[:0] = ['*', prefix + file + ':']
        maxcol = 72-8
        col = maxcol
        for word in words:
            if col > 0 and col + len(word) >= maxcol:
                print
                print '\t' + word,
                col = -1
            else:
                print word,
            col = col + 1 + len(word)
        print
        print

startprog = re.compile("^Working file: (.*)$")

def getnextfile(f):
    while 1:
        line = f.readline()
        if not line: return None
        if startprog.match(line) >= 0:
            file = startprog.group(1)
            # Skip until first revision
            while 1:
                line = f.readline()
                if not line: return None
                if line[:10] == '='*10: return None
                if line[:10] == '-'*10: break
##              print "Skipped", line,
            return file
##      else:
##          print "Ignored", line,

def getnextrev(f, file):
    # This is called when we are positioned just after a '---' separator
    revline = f.readline()
    dateline = f.readline()
    log = ''
    while 1:
        line = f.readline()
        if not line: break
        if line[:10] == '='*10:
            # Ignore the *last* log entry for each file since it
            # is the revision since which we are logging.
            return None
        if line[:10] == '-'*10: break
        log = log + line
    return dateline, file, revline, log

if __name__ == '__main__':
    main()
  "   lamJq@;pNm1hh      01
  +   lY>eJ}@?q1hq_I|+ ?     /*
  zip_open.c -- open zip archive by name
  Copyright (C) 1999-2012 Dieter Baron and Thomas Klausner

  This file is part of libzip, a library to manipulate ZIP archives.
  The authors can be contacted at <libzip@nih.at>

  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions
  are met:
  1. Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in
     the documentation and/or other materials provided with the
     distribution.
  3. The names of the authors may not be used to endors