def reenqueue(item_f, *args, **kwargs):
    '''Enqueue the contents of a file, or file-like object, FSQWorkItem,
       file-descriptor or the contents of a files queues at an address
       (e.g. '/my/file') queue with arbitrary arguments from one queue to
       other queues, reenqueue is to vreenqueue what printf is to vprintf
    '''
    src_queue = kwargs.pop('src_queue', None)
    link = kwargs.pop('link', False)
    if isinstance(item_f, FSQWorkItem):
        return vreenqueue(item_f, args, link=link, **kwargs)
    item_f, src_queue, item_id, args, link = _unpack_args(item_f, src_queue,
                                                          link, args)
    if not item_f:
        return vreenqueue(item_id, args, src_queue=src_queue, link=link,
                          **kwargs)
    return vreenqueue(item_f, item_id, args, src_queue=src_queue, link=link,
                      **kwargs)